프로세스가 실행되면 이와 같은 그림으로 메모리맵이 할당됩니다.
CODE
함수들이 올라가게 됩니다. main(), abc(), WinMain() 등등의 함수들이 차지하는 영역입니다.
DATA
전역 변수, static 변수, 문자열
HEAP
사용자가 동적으로 메모리 할당을 해주는 부분입니다.
malloc/calloc
C++/JAVA : new
STACk
지역 변수(Auto 변수), 인자, Return Address, Return Value
CODE와 DATA는 프로세스 종료시 소멸하게 됩니다. HEAP 부분은 사용자가 할당해주었으면 해제도 해주어야 하는 부분입니다. HEAP을 잘못 관리하게 되면 메모리 누수가 발생합니다.
STACK의 경우 프로그램을 작성할 때 크기를 할당할 수 있는데 Visual Studio에서는 기본적으로 1M 로 잡혀 있습니다. 이 부분은 Stack Overflow가 발생할 수 있으니 주의를 기울여야 합니다.
'Tips > Windows' 카테고리의 다른 글
| 프로세스 단위 메모리 (0) | 2012/01/17 |
|---|




