본문 바로가기

공부/C, C++

힙 영역과 스택 영역

힙 영역
메모리의 힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역이다.
사용자에 의해 메모리 공간이 동적을로 할당되고 헤제된다.
힙 영역은 메모리의 낮은 주소에서 높은 주소 방향으로 할당된다.
스택 영역
지역 변수와 매개 변수가 저장되는 영역이다.
스택 영역은 함수의 호출과 함께 할당되며 함수의 호출이 완료되면 소멸한다.

함수가 호출되면 스택에는 함수의 매개 변수, 함수가 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수 등이 저장된다.

스택 프레임
스택 프레임 : 스택 영역에 차례대로 저장되는 함수의 호출 정보

스택 프레임의 동작 방식
후입선출(LIFO, Last-In First-Out)
가장 나중에 저장된 데이터가 가장 먼저 인출되는 방식

스택 오버플로우 (Stack Overflow)
스택 오버플로우 : 스택 영역을 넘어 데이터가 저장되는 경우
함수의 재귀 호출(자기 자신을 호출)이 무한이 반복될 때, 스택 영역에 데이터가 계속해서 쌓이고, 스택 영역을 넘어 데이터가 저장된다. 스택 영역을 넘어 데이터가 저장된 순간 스택 오버플로우가 발생하면서 프로그램은 스택 오버플로우에 의해 종료된다.

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

Call by value, Call by address, Call by reference  (0) 2019.11.18
상속, 다형성, 가상 함수  (0) 2019.10.28
C,C++,C#  (0) 2019.10.21