C언어 코드에 문제점이뭔지 궁금합니다.

NaziCube의 이미지

C언어 책보며 문제가 나와서 하는도중에 나온 오류같은건데 일단 맨처음짠게

#include <stdio.h>
 
int main(){
   int df,arr[df],ct=0;
   printf("몇개의 정수를 입력 할 것인가 : ");
   scanf("%d", &df);
   printf("정렬할 숫자 "); 
   for(;ct<df;ct++){
      printf("입력 : ");
      scanf("%d", &arr[ct]);
   }
   return 0;
}

이거입니다.
여기서 문제점이 df에다가 12를 입력하면 arr[ct]에 12개의 정수를 입력이 가능할 줄 알았는데 막상해보니 6개만 입력이 가능해서

#include <stdio.h>
 
int sort(int * ptr);
 
int main(){
	int df;
	printf("몇개의 정수를 입력 할 것인가 : ");
	scanf("%d", &df);
	sort(&df);
	return 0;
}
 
int sort(int * ptr){
	int arr[*ptr], ct=0;
	for(;ct<*ptr;ct++) scanf("%d", &arr[*ptr]);
}

이렇게 바꾸어봤는데 여기서는 정상작동을 합니다.
비슷하게 코드를 만든거같은데 뭐가 문제일까요?

twinwings의 이미지

설마 그 나치를 의미하는건 아니죠?

익명 사용자의 이미지

물론 그럴수도있긴한데 그건아니에요 솔직히 만든지 너무오래되서 회피같지만 까먹었어요 이유를