c언어 : array[x] 에서, x 가 변수일 경우 발생하는 문제?

snoopy3476의 이미지

예전에 array 안의 [ ] 에는 상수가 들어가야 한다고 배웠던 것 같은데,

------------------------------------------------------------------

#include

int main()
{
int input;
scanf(" %d", &input);

int i, wow[input];

for ( i = 0; i < input; i++ )
wow[i] = i * 2;

for ( i = 0; i < input; i++ )
printf("%d\n", wow[i]);

return 0;
}

------------------------------------------------------------------

실제로 이런 코드를 만들어서 돌려보니 당장 별 문제가 되지 않더군요.

혹시 array의 크기를 변수로 지정했을 때 제가 모르는 어떤 문제가 발생하거나 문제의 발생 가능성 같은 거라도 있는 건가요?

kukyakya의 이미지

C99 표준이나 컴파일러 확장으로 제공되는 Variable length array 입니다.

'input'의 값이 너무 커서 스택이 오버플로되거나 하는 문제점이 있을 수는 있겠으나 일반는는적으로 활용하는데는 딱히 문제될 건 없어보입니다.