[기술] 스택과 힙 영역

oy Hong·2024년 4월 9일

기술

목록 보기
2/23

응용 프로그램의 메모리 구조



코드 영역

컴파일된 응용프로그램의 네이티브 코드가 저장되는 영역이다.


데이터 영역

전역 변수, 정적 변수 등 프로그램 전반적으로 사용될 수 있는 데이터가 저장되는 영역이다.
응용프로그램이 실행되는 시점에 할당된다.


스택(Stack) 영역

지역 변수나 매개변수와 같은 일시적인 데이터가 저장되는 영역이다.
컴파일 타임에 크기가 결정되며, 라이프 사이클이 끝나면 자동으로 할당 해제된다.

  • 스택 오버플로우 (Stack Overflow)
    스택에 데이터가 쌓이다가 컴파일 타임에 정해진 크기를 벗어나면 발생하는 예외이다.
    try/catch 예외 처리를 해도 프로그램이 비정상적으로 종료된다.
    이는 스택 메모리가 모두 할당되어 오류를 알릴 메서드를 호출할 수 없기 때문이다.

힙(Heap) 영역

사용자에 의해 동적으로 할당되는 메모리 영역이다.
동적으로 할당되기 때문에 런타임에 크기가 결정된다.

  • 힙 오버플로우 (Heap Overflow)
    힙 영역에서 스택 영역을 침범하는 현상을 말한다.

0개의 댓글