C 언어 메모리 구조

메모리 구조

1. 종류
1. 코드 영역
2. 데이터 영역
3. 스택 영역
4. 힙 영역
1. 코드 영역
  1. 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(코드) 영역이라고도 합니다.
  2. 바이너리 코드(기계어) 형태로 컴파일되어 저장된다.
  3. 코드에 직접 작성한 문자열과 상수도 해당 영역에 저장됩니다.
  4. 프로그램 실행 중에 절대 변경되어서는 안 되는 데이터(코드, 상수, 코드의 문자열)가 저장됩니다.
2. 데이터 영역
  1. 프로그램이 종료될 때까지 사라지지 않는 영역입니다.
  2. 프로그램이 실행될 때 할당되고 프로그램이 종료될 때 해제되는 변수를 저장합니다.
  3. 전역 변수, 정적 변수 등을 저장합니다.

3. 힙 영역
  1. 개발자의 동적 할당(malloc)
  2. 프로그램 실행 중 개발자가 미리 설정한 의도에 의해 생성되어 해제되는 영역
4. 스택 영역
  1. 기능을 보다 효율적으로 실행하기 위해 생성된 공간
  2. 프로그램별 동적 할당
  3. 프로그램 실행 중 함수 실행을 위해 일시적으로 생성 및 해제되는 영역(런타임)
    ex) 지역변수, 파라미터, 쓰레드