10.4 이박사와 함께 생각하는 C 언어: 네 가지 메모리 저장소 둘러보기
동적 메모리 할당을 통해 생성되는 메모리는 힙(heap) 영역에 저장됩니다. 우리가 C 언어 코드를 작성하면서 정보를 저장하기 위해 메모리를 사용합니다. 메모리 저장 영역 중 하나가 힙 영역입니다.
C 프로그램을 수행하기 위해서는 메모리 공간이 운영체제(operating system)에 의해 코드 영역, 데이터 영역, 힙 영역, 스택 영역 이렇게 4개의 영역으로 구분되어 사용됩니다. 이렇게 변수의 특성에 따라 4개로 구분된 메모리 공간 안에서 한 영역에 변수가 선언되고, 문자열 등이 선언되어 사용됩니다.
표 10-1 | C 언어의 네 가지 메모리 저장소
코드 영역 |
프로그램의 코드가 저장되는 메모리 공간입니다. 컴퓨터는 코드 영역에 저장된 명령문을 하나씩 가져가서 실행합니다. |
데이터 영역 |
데이터 영역에는 전역 변수와 스택 변수가 할당됩니다. 프로그램의 시작과 동시에 메모리 공간에 할당되어 프로그램이 종료될 때까지 남아 있습니다. |
힙 영역 |
데이터 영역과 스택 영역에 할당되는 변수는 생성과 소멸 시점이 결정되어 있습니다. 개발자가 원하는 시점에 변수를 할당하고 소멸할 수 있는 변수들이 할당되는 영역이 힙 영역입니다. malloc( ) 함수와 free( ) 함수를 이용한 동적 메모리 할당 영역입니다. |
스택 영역 |
지역 변수와 매개변수가 할당됩니다. 할당되는 변수들은 선언된 함수를 빠져나가면 소멸합니다. |