: : C++

[Memory Structure] Variable in Memory

Jay.P Morgan 2024. 6. 28. 16:55

 

  1. Variables in Memory

            (Variables => Stack)

 

  Code 영역

  • 실행 코드, 전역상수, static 전역상수 부분
  • 이 영역의 정보는 read only로서 절대 변경되지 않아야 한다.
  • 컴파일할 때, 크기가 정해진다.

 

  Data & Bss 영역

  • Data 영역은 초기화된 static, 초기화된 전역변수 부분
  • Bss 영역은 초기화되지 않은 전역변수, 0으로 초기화된 전역변수, 초기화되지 않은 static 변수, 0으로 초기화된 static 변수가 올라오는 부분
  • Bss 영역에 올라오는 모든 변수는 0으로 초기화된다.
  • 컴파일할 때, 크기가 정해진다.

 

  Heap 영역

  • 동적으로 할당해준 변수(malloc, new)가 올라오는 부분
  • 먼저 들어간 데이터가 가장 먼저 나온다.(FIFO)
  • 실행할 때, 크기가 정해진다.

 

  Stack 영역

  • 임시적으로 생성해준 변수(지역 변수)가 올라오는 부분
  • 먼저 들어간 데이터가 가장 나중에 나온다.(FILO)
  • 실행할 때, 크기가 정해진다.

 

 

 

 

': : C++' 카테고리의 다른 글

Overloading, Override, 다형성  (0) 2024.04.17