배열의 초기값에 대한 질문입니다.
int a=10; int b[a];
랑 const int a=10; int b[a];
의 차이점은 무엇입니까?
int k1=10; // 일반변수 const int k2=10; // 상수(값을 바꿀 수 없음) int ar1[k1]; // 함수호출시 힙영역에 생성된다. int ar2[k2]; // 함수호출시 스택영역에 생성된다.
ㅡ_-) k1은 변화할 수 있는 수이기 때문에 힙영역에 배열이 생성되고, k2는 변화하지 않는 수이기 때문에 미리 그 크기를 정할 수 있어서 스택영역에 배열이 생성될 것입니다.
ps. 이것도 C99던가? 그 규정 이상에서만 되고 지원하지 않는 컴파일러도 있습니다.
_____________________________ 언제나 맑고픈 샘이가...http://purewell.biz
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
[code:1]int k1=10; // 일반변수const int
ㅡ_-) k1은 변화할 수 있는 수이기 때문에 힙영역에 배열이 생성되고,
k2는 변화하지 않는 수이기 때문에 미리 그 크기를 정할 수 있어서 스택영역에
배열이 생성될 것입니다.
ps. 이것도 C99던가? 그 규정 이상에서만 되고
지원하지 않는 컴파일러도 있습니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
댓글 달기