배열의 초기값에 대한 질문입니다.

skylandi의 이미지

배열의 초기값에 대한 질문입니다.

int a=10;
int b[a];


const int a=10;
int b[a];

의 차이점은 무엇입니까?

purewell의 이미지

int k1=10; // 일반변수
const int k2=10; // 상수(값을 바꿀 수 없음)

int ar1[k1]; // 함수호출시 힙영역에 생성된다.
int ar2[k2]; // 함수호출시 스택영역에 생성된다.

ㅡ_-) k1은 변화할 수 있는 수이기 때문에 힙영역에 배열이 생성되고,
k2는 변화하지 않는 수이기 때문에 미리 그 크기를 정할 수 있어서 스택영역에
배열이 생성될 것입니다.

ps. 이것도 C99던가? 그 규정 이상에서만 되고
지원하지 않는 컴파일러도 있습니다.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz