1. 힙이란?
80x86 시스템의 메모리 구성중 사용자의 필요에 의해 동적으로 메모리를 할당하는 곳. 프로그램 실행 중 할당해야할 메모리의 크기를 결정해야 하는 경우 사용. 프로그램 실행중 해당 힙이 없어질시 메모리 부족으로 이상 종료함.
2. 스택과의 차이점?
스택 영역에서는 LIFO(후입선출)방식이 사용되지만 힙 영역에서는 대개 포인터 변수를 통해 동적으로 할당하기 때문에 프로그램들이 요구하는 블록 크기나 요구 순서에 따른 일정한 규칙이 없음.
스택 영역에서는 해당 함수 종료시 할당된 메모리가 사라지지만 힙 영역에서는 프로그래머가 free()하거나 쓰레기 수집(GC - Garbage Collector)이 일어나기 전까지는 그대로 유지된다.
3. 동적 메모리 할당/해제 방법
new 또는 malloc()/calloc()/realloc() 함수를 사용하여 동적 메모리 할당.
ex) char *p = new char[100];
char *p = malloc(40);
free() 함수를 사용하여 동적 메모리 해제.
ex) free(p);
'system > basic' 카테고리의 다른 글
1. Register(레지스터) (0) | 2017.03.04 |
---|---|
0. Stack(스택) (0) | 2017.03.04 |