반응형
프로그램에서 메모리를 구분하는 방법은 컴파일러 제조사에 따라 조금씩 다르지만 대략 다음과 같이 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 |