승쨩개발공부

[C++] 메모리 구조 본문

C++

[C++] 메모리 구조

SeungHyune 2021. 11. 30. 01:08

메모리 구조

컴퓨터의 운영체제는 프로그램 실행을 위해서 메모리 영역을 제공한다.

메모리 영역의 구조는 CODE, DATA, HEAP, STACK 4가지 영역으로 이루어져 있다.

 

CODE 영역

코드 영역은 말 그대로 실행하는 프로그램의 코드가 저장되는 영역이다.

영어로 텍스트 영역이라고도 불린다.

CPU 는 이 코드 영역에 저장된 명령어들을 처리하게 된다.

(함수 코드는 코드영역의 바이너리 형태로 저장된다)

 

DATA 영역

데이터 영역은 프로그램의 전역 변수와 정적 변수(static 변수)가 저장되는 영역이다.

메모리의 할당 시점은 프로그램 시작시 할당되며, 프로그램 종료시 소멸 된다.

 

HEAP 영역

힙 영역은 프로그래머가 직접 메모리를 관리할 수 있는 영역이다.

프로그래머가 원하는 시점에 메모리를 할당할 수 있고,

또한 원하는 시점에 메모리를 해제할 수 있다.

이는 동적할당을 통해서 프로그래머가 직접 메모리 영역을 관리할 수 있다.

 

STACK 영역

스택 영역은 함수의 지역변수와 매개변수가 저장되는 영역이다.

함수의 호출과 함께 할당되며, 함수의 호출 완료 시 소멸한다.

스택 영역은 후입 선출 LIFO(Last-in First-Out) 구조를 가지는 특징이 있다.

즉, 맨 처음에 할당된 변수는 마지막에 소멸이 되고,

맨 마지막에 할당된 변수가 첫 번쨰로 소멸이 되는 구조이다.

 

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

[C++] 열거체(enum)  (0) 2021.11.30
[C++] 입출력,스트림,버퍼,경로  (0) 2021.11.30
[C++] 동적할당  (0) 2021.11.29
[C++] Text RPG  (0) 2021.11.26
[C++] 구조체(struct)  (0) 2021.11.26