* 프로그램이 메모리에 올라가게 되면 프로세스가 되는데 여기서 Data SegmentCode Segment로 나누어 지는데, Heap 과 Stack 은 Data Segment를 이용한다.


* Heap 은 런타임시 크기가 결정되는 요소들이 저장되는 공간이다.

C의 malloc() 이나 C++의 new 로 메모리 할당이 될 때에는 Heap 영역에 메모리가 잡힌다.


* Stack 은 컴파일시 크기가 결정되어 있는 요소들이 저장되는 공간이다.

함수가 받는 매개 변수나 함수 내에서 사용되는 지역 변수가 Stack 영역에 저장 된다.



 - 메모리를 가상으로 표현한 모습.


 Data 영역
전역 변수와 static 변수 저장

 Heap 영역

동적할당 되는 데이터 저장 (데이터가 위 부터 순차적으로 저장)

 Stack 영역
지역 변수와 매개변수 저장 (데이터가 아래부터 순차적으로 저장)








posted by 쪼재