C 언어의 메모리 구조
데이터 영역
- 전역 변수와 정적 변수가 할당되는 영역.
- 프로그램을 시작하면 할당하고, 프로그램을 종료하면 메모리에서 해제한다.
스택 영역
- 함수 호출 시 생성되는 지역 변수와 매개변수가 지정되는 영역.
- 함수 호출이 완료되면 사라진다.
힙 영역
- 필요에 따라 동적으로 메모리를 할당한다.
- 동적 할당을 통해 생성된 동적 변수를 관리하기 위한 영역임.
메모리 할당 기간과 동적 객체 생성
- calloc, malloc 함수는 힙 (Heap) 빈 공간에 기억 장소를 확보한다.
- 확보한 메모리가 불필요하면 공간을 해제해야 하는데 해제하는 함수는 free 함수다.