더북(TheBook)

10.4 이박사와 함께 생각하는 C 언어: 네 가지 메모리 저장소 둘러보기

동적 메모리 할당을 통해 생성되는 메모리는 힙(heap) 영역에 저장됩니다. 우리가 C 언어 코드를 작성하면서 정보를 저장하기 위해 메모리를 사용합니다. 메모리 저장 영역 중 하나가 힙 영역입니다.

C 프로그램을 수행하기 위해서는 메모리 공간이 운영체제(operating system)에 의해 코드 영역, 데이터 영역, 힙 영역, 스택 영역 이렇게 4개의 영역으로 구분되어 사용됩니다. 이렇게 변수의 특성에 따라 4개로 구분된 메모리 공간 안에서 한 영역에 변수가 선언되고, 문자열 등이 선언되어 사용됩니다.

표 10-1 | C 언어의 네 가지 메모리 저장소

코드 영역

프로그램의 코드가 저장되는 메모리 공간입니다. 컴퓨터는 코드 영역에 저장된 명령문을 하나씩 가져가서 실행합니다.

데이터 영역

데이터 영역에는 전역 변수와 스택 변수가 할당됩니다. 프로그램의 시작과 동시에 메모리 공간에 할당되어 프로그램이 종료될 때까지 남아 있습니다.

힙 영역

데이터 영역과 스택 영역에 할당되는 변수는 생성과 소멸 시점이 결정되어 있습니다. 개발자가 원하는 시점에 변수를 할당하고 소멸할 수 있는 변수들이 할당되는 영역이 힙 영역입니다. malloc( ) 함수와 free( ) 함수를 이용한 동적 메모리 할당 영역입니다.

스택 영역

지역 변수와 매개변수가 할당됩니다. 할당되는 변수들은 선언된 함수를 빠져나가면 소멸합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.