#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
char a[1000005];
int arr[26];
int main()
{
int max = 0;
int size;
char ans;
scanf("%s", a);
size = strlen(a);
for (int i = 0; i < size; i++)
if (a[i] >= 'a') arr[a[i] - 'a']++; //이부분
else arr[a[i] - 'A']++;
for (int i = 0; i < 26; i++)
if (arr[i] == max) {
ans = '?';
}
else if (arr[i] > max) {
max = arr[i];
ans = 'A' + i;
}
printf("%c", ans);
return 0;
}

이 예제에서 첫번째 for문에 있는 arr[a[i]-'a']++; 이 있는데요. arr배열을 초기화를 안했는데 어떻게 사용할 수 있는건가요?

예를들면 scanf문 뒤에 printf로 arr[0]을 출력해보면 이상한 값이 나오거든요. 근데 이상한 값이 있는채로 arr[]++해버리면 안되야 되는거 아닌가요?