프로그래밍/C C++

메모리 영역

우진샘 2013. 4. 20. 11:54

프로그램에서 메모리를 구분하는 방법은 컴파일러 제조사에 따라 조금씩 다르지만 대략 다음과 같이 4 종류의 세그먼트들로 나눕니다.

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

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

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

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

스택 세그먼트는 함수나 프로시듀어에서 선언한 변수들-로컬변수-들을 저장하는 공간으로 함수가 시작되면 변수들이 스택 구조형태로 차곡 차곡 메모리에 할당되어 사용되다가 함수가 종료되면 메모리 할당이 자동으로 해제되는 변수을 저장하는 공간 입니다.
스택 형태의 자료구조로 메모리를 할당하면 위 메카니즘을 손쉽게 구현 할수 있어서 스택형태로 자료구조를 만들었기 때문에 스택 세그먼트라 부릅니다.

Heap은 메모리 자유영역입니다.
코드영역 할당하고 다른 세그먼트들을 할당하고 남은 나머지 부분이지요.
이 영역은 calloc, malloc, new 와 같은 명령으로 실행중 동적으로 메모리를 불러다 쓸 수있는 공간이 됩니다.

'프로그래밍 > C C++' 카테고리의 다른 글

enum 열거형  (0) 2013.03.22
크리티컬 섹션(Critical Section)  (0) 2013.03.21
% 서식문자 정리  (0) 2013.03.01
프로그래밍/바이트 오더(byte order)  (0) 2011.03.15
프로그래밍/assert  (0) 2010.03.05