예를 들어서
int arr1[1000000]; //정상
int main(){ int arr2[1000000]; //오류
}
인데 이유가 뭔지 잘 모르겠습니다
감사합니다 ^^
스택 크기는 제한되어 있습니다.
오류라고 든 예제코드도 앞에 static이라고 붙혀주거나 malloc으로 할당하면 가능할겁니다.
전역변수는 힙에 할당 되고 main 안에 선언한 로컬 변수는 스택에 할당 됩니다.
스택 크기를 늘려주거나 스택에 할당하지 않고 힙에다가 할당한다면 해결 할 수 있습니다
다른 이야기로 컴파일러나 링커의 설정에 보면 스택의 크기를 명시해줄수있는것으로 알고있습니다
setlimit/getlimit
======================== 조직 : E.L.D(Embedded Linux Developer/Designer) 블로그 : poplinux@tistory.com 카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
텍스트 포맷에 대한 자세한 정보
<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]
스택 크기는 제한되어 있습니다.
스택 크기는 제한되어 있습니다.
오류라고 든 예제코드도 앞에 static이라고
오류라고 든 예제코드도
앞에 static이라고 붙혀주거나
malloc으로 할당하면 가능할겁니다.
전역변수는 힙에 할당 되고 main 안에 선언한
전역변수는 힙에 할당 되고
main 안에 선언한 로컬 변수는 스택에 할당 됩니다.
스택 크기를 늘려주거나
스택에 할당하지 않고 힙에다가 할당한다면 해결 할 수 있습니다
다른 이야기로 컴파일러나 링커의 설정에 보면 스택의
다른 이야기로 컴파일러나 링커의 설정에 보면 스택의 크기를 명시해줄수있는것으로 알고있습니다
setlimit/getlimit
setlimit/getlimit
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기