본문 바로가기
프로그래밍 언어/C,C++

메모리 영역 출력해서 알아보기

by pagehit 2021. 6. 28.
반응형

프로그램을 실행하면 운영체제는 메모리 공간을 제공하며, 메모리 공간은 낮은 주소부터 코드 영역, 데이터 영역, 힙 영역, 스택 영역을 할당한다.


코드 영역(code segment, text segment or text)

프로그램의 코드가 저장되는 영역이며, CPU는 코드 영역에 저장된 명령어를 가져와서 실행한다.


데이터 영역(data segment, or .data)

전역 변수(global variable)와 정적 변수(static)가 저장된다. 프로그램이 시작할 때 할당되며, 프로그램이 종료하면 소멸한다.


힙 영역(heap)

사용자(코드 작정자)가 메모리 공간을 동적으로 할당하고 해제한다. 힙 영역은 낮은 주소에서 높은 주소로 할당한다.


스택 영역(stack)

함수 호출과 함께 할당되며, 함수 호출이 완료되면 소멸한다. 함수와 관련된 지역 변수(local)와 매개변수, 반환값, 반환될 주소 등이 저장된다. 스택 영역은 높은 주소에서 낮은 주소로 할당된다.

 

https://www.hackerschool.org/Sub_Html/HS_University/BOF/essential/PDF_Files/14.pdf

https://www.quora.com/Where-are-the-arrays-in-C-stored-in-a-stack-or-a-heap

 

반응형

댓글