C++ 공부

C++) 프로그램의 메모리 구조

_ehdbs 2023. 3. 28. 16:38

C++에 메모리 구조에 대해서 잘 알고 있다고 생각했지만.. 오늘 수업시간에 중간점검을 해보면서 스택메모리와 힙메모리에 대해서만 알고있고 그마저도 완벽하지 않다고 판단하여 다시 공부해보기로 했다.

 


1. 스택영역

스택영역은 자료구조의 Stack과 마찬가지로 아래에서 부터 쌓이는 형식으로 저장되는 메모리 공간으로 함수의 호출과 관계되는 지역변수와 매개변수가 저장된다.

 

함수의 호출과 관계되므로 함수가 시작되는 시점에서 생성되고 함수가 종료되면 소멸한다.

 

 

 

 

 

2. 힙영역

힙영역는 프로그램 시작 시 선언되지 않고 프로그램 실행 도중 정의되는 동적호출되는 변수들이 저장되는 공간이다.

 

C++에서 동적할당한 변수들은 힙영역에 저장되고 스택메모리와 달리 자동으로 소멸하지 않기때문에 사용자가 직접 delete 시켜주어야 한다.

 

3. 데이터 영역

데이터 영역은 프로그램이 시작될 때 할당되고, 종료될 때 소멸합니다.

 

데이터 영역에는 프로그램 시작과 동시에 할당되고 함수의 영향을 받지 않는 전역변수와 static 변수들이 할당된다.

 


기본적인 메모리 구조 지식이지만.. 재대로 알지 못한다는게 부끄러웠고 기초적인 지식이라고 소홀히 하지 않고 다시한번 공부해봐야겠다는 생각을 하였다.

'C++ 공부' 카테고리의 다른 글

C++) Sort와 Stable_Sort  (0) 2023.03.28
C++) sync_with_stdio, cin.tie, cout.tie  (1) 2022.09.26
C++) iterator  (2) 2022.09.24
C++) 수학  (0) 2022.09.24