C/C++ 에서 배열의 크기는 컴파일타임에 정해져야 하는 걸로 알고 있습니다.
예를 들면 아래와 같이 두 파일을 만들어 컴파일할 경우
test1.cpp
#include <iostream>
extern int size;
int main()
{
int arr[size];
return 0;
}
test2.cpp
int size = 10;
이런 경우 컴파일 에러를 내는 걸로 알고 있습니다. test1.cpp를 컴파일 할 때
컴파일러가 size의 값을 알 수 없기 때문이죠. VC++에서 테스트를 해보니
역시 컴파일에러를 내는군요... 그런데.
gcc 에서 해보니 에러가 안나네요. 배열이 아주 정상적으로 만들어지고 실행도