티스토리 뷰

C++/General

스택 크기

엘키 2009. 12. 8. 14:02

스택의 크기는 한정되어있다.
그럴 수 밖에 없는 것이, 스택 영역은 스레드 별로 다르게 존재해야 되기 때문이다.

Visual Studio .net 2003 환경에서 기본 옵션으로 Build 했을 경우 stack 크기는 1M byte 이다.
stack 크기를 늘리고 싶다면, 힙 공간을 사용하거나 project - properties - linker - system에서 stack reserve size를 변경하면 된다.

스택의 크기가 크게 배정된다면, 스택 오버플로우의 가능성은 낮지만 스레드 전환시 복사 비용이 크다는 단점이 생긴다.

스택에는 지역 변수, 함수가 되돌아갈 주소, 매개변수 등이 담기는데, 지역 변수를 남발 할 시에는 스택 크기를 넘어서서 스택 오브 플로우가 발생한다. 스택의 크기는 너무 커도 낭비지만 너무 작아도 문제가 생기니 적절한 값을 설정하고 이 크기를 유념해서 코딩해야 할 것이다.

'C++ > General' 카테고리의 다른 글

WIN32 Console Application 에서 MFC 사용하기  (2) 2010.01.22
dllimport, dllexport  (3) 2009.12.29
상속시 접근 지정자 설정.  (0) 2009.06.30
C언어에서의 데이터가 저장되는 영역  (1) 2009.03.27
32bit Windows 메모리 관리  (0) 2009.03.27
댓글