프로그래밍/C, C++

메모리의 4가지 종류

Dev-Drake 2019. 6. 28. 10:40
반응형

프로그램에서 메모리를 구분하는 방법은 컴파일러 제조사에 따라 조금씩 다르지만 대략

 

다음과 같이 4 종류의 세그먼트들로 나눕니다.

 

1. Code Segment  : 프로그램 코드가 들어 있는 부분.

 

2. Data Segment  : 전역 변수와 static 변수들이 저장되어 있는 부분

 

3. Stack Segment : 로컬 변수들이 저장되어 있는 부분

 

4. Heap Segment  : free space로서 dynamic allocation 으로 메모리를 사용할수 있다.

 

스택 세그먼트는 함수나 프로시듀어에서 선언한 변수들-로컬변수-들을 저장하는 공간으로 함수가 시작되면 변수들이  스택 구조

 

형태로 차곡 차곡 메모리에 할당되어 사용되다가 함수가 종료되면 메모리 할당이 자동으로 해제되는 변수을 저장하는 공간 입니

 

다. 스택 형태의 자료구조로 메모리를 할당하면 위 메카니즘을 손쉽게 구현 할수 있어서 스택형태로 자료구조를 만들었기 때문에

 

스택 세그먼트라 부릅니다. 

Heap은 메모리 자유영역입니다. 코드영역 할당하고 다른 세그먼트들을 할당하고 남은 나머지 부분이지요. 이 영역은 calloc,

 

malloc, new 와 같은 명령으로 실행중 동적으로 메모리를 불러다 쓸 수있는 공간이 됩니다.

 

반응형