메모리 영역

Woogle·2023년 2월 10일
0

C++ 공부

목록 보기
9/28
post-thumbnail

📄 메모리

  • 자료를 저장하는 공간

✏️ Code 영역

  • 실행할 프로그램의 Code가 저장되는 영역 (= Text 영역)
  • CPU가 코드의 Text를 읽어서 처리

✏️ Data 영역

  • 전역 변수정적(Static) 변수 저장 영역
  • 프로그램 시작 시 할당, 프로그램 종료 시 소멸

✏️ Heap 영역

  • 낮은 주소에서 높은 주소 방향으로 할당 (↑)
  • 사용자에 의해 직접 관리되는 영역
  • 동적 메모리 공간 (런타임에 크기가 결정)
  • 선입선출 (FIFO)
  • Heap의 장단점
    • (상대적으로) 느린 액세스
    • 변수를 전역적으로 액세스할 수 있음
    • 메모리가 조각화되어 해제될 수 있음
    • 메모리의 크기 제한이 없음

✏️ Stack 영역

  • 함수의 호출과 관계되는 지역변수매개변수를 저장
  • 높은 주소에서 낮은 주소 방향으로 할당 (↓)
  • 정적 메모리 공간 (컴파일 타임에 크기가 결정)
  • 후입선출 (LIFO)
  • Stack의 장단점
    • (상대적으로) 빠른 액세스
    • 변수를 명시적으로 할당하거나 해제할 필요가 없음
    • CPU에 의해 공간이 효율적으로 관리되고, 메모리가 단편화되지 않음
    • 변수의 크기를 조정할 수 없음 (OS에 따라 크기가 다름. Windows 32bit, 64bit)


이미지 출처

profile
노력하는 게임 개발자

0개의 댓글