백준 거의 처음 하면서 막 풀었던 거 찾았는데, 내가 푼 코드 보면서 의문 생김..

거의 마지막 줄 보면, printf("%d") 썼는데 변수 지정을 안 했음. 근데 그 당시엔 발견도 못했는데 문제는 맞았음.

원래 이거 처음 선언한 변수 메모리에서 알아서 꺼내 쓰는 거임?

이젠 심지어 c도 안 해서 걍 모르겠음 그냥 ㅈㄴ 궁금한데.. 참고로 문제 번호 9506임



#include<stdio.h>


int main() {

    int n; scanf("%d", &n); int dir[10000];

    

    

    for(; n != -1;) {

         int indxe = 0; int sum = 1;

         for(int i = 2;i <= n/2 ;i++) {

            if(n%i == 0) {sum += i; dir[indxe] = i; indxe++;}

            else continue;

        }

        if(n == sum) {

            printf("%d = 1 ", n);

            for(int i = 0; i < indxe; i++) printf("+ %d ", dir[i]);

            printf("\n");

        }

        else printf("%d is NOT perfect.\n");

        scanf("%d", &n);

    }

}