CS

[프로그래밍] 메모리 구조의 네 가지 영역 설명

juhwan 2023. 9. 30. 15:01

프로그램이 실행되면 메모리는 4가지 영역으로 나뉜다

  1. 코드 영역 (Code Area)-> 실행할 프로그램의 코드
    • CPU가 직접 실행하는 기계어 코드가 포함된다.
  2. 데이터 영역 (Data Area) -> 정적 변수(전역 변수, Static선언된 변수)
    • 데이터 영역에 있는 변수들은 프로그램의 시작부터 종료까지 계속 유지된다.
  3. 힙 영역 (Heap Area) -> 동적으로 할당되는 객체, 동적 배열, 구조체, 클래스, 인스턴스, 자료구조
    • 동적 할당을 위해서사용되며, 프로그래머가 직접 관리하고 필요에 따라 메모리를 할당하고 해제할 수 있다.
      가비지 컬렉터 기능이 있는 언어는 힙 영역의 메모리를 자동 해제합니다.
  4. 스택 영역 (Stack Area) -> 지역 변수, 함수 호출 정보(반환 주소, 매개변수 등)
    • 함수 호출이 발생할 때마다 해당 함수의 반환 주소와 매개변수가 스택에 푸시(push)되고, 함수 호출이 완료되면 스택에서 팝(pop) 된다.