2013. 5. 17. 07:06
static 배열과 auto 배열의 차이 C언어 이야기2013. 5. 17. 07:06
case1)
foo(){
int size = 8;
static temp[size];
}
case2)
foo(){
int size = 8;
temp[size];
}
둘다 컴파일 될까?
정답은, case1은 안되고, case2는 된다. 좀만 생각하면 당연한 이야기이지만,
왜? static은 컴파일 타임에 이미 링커에 의해 메모리 할당이 되어있어야 한다. 하지만 저렇게 런타임에 static 배열을 초기화 한다는 것 자체가 모순이다.
case2는 temp배열은 auto변수이므로, 호출될 때, size에 따라 스택에 배열을 할당할 수 있다.
'C언어 이야기' 카테고리의 다른 글
씨언어 강제로 브런치하기 (0) | 2013.06.07 |
---|---|
C언어 형변환... (1) | 2013.05.25 |
이차원배열과 그 순회방법 (0) | 2013.03.30 |
linux hlist 분석 (0) | 2013.02.09 |
공유라이브러리 연습 (0) | 2013.01.28 |