개발지식

RAM 영역

테니드2 2025. 3. 4. 16:19

---------------------- (높은 주소)
|       코드        |  (프로그램 실행 코드)
----------------------
|  데이터 영역 (정적/전역 변수)  |
----------------------
|        힙        |  (동적 메모리 할당 - 위로 성장)
----------------------
|        스택       |  (함수 호출 시 생성 - 아래로 성장)
---------------------- (낮은 주소)

 

1. 코드(Code) 영역 : 프로그램의 실행코드가 저장되는 공간

2. 데이터(Data) 영역 : 프로그램이 실행될 때 정적(static) 및 전역(global) 변수가 저장되는 영역

3. 힙(Heap) 영역 : 동적 메모리 할당을 담당하는 영역으로, 런타임에 크기가 결정됨

4. 스택(Stack) 영역 : 함수 호출 시 지역변수, 매개변수, 리턴주소 등이 저장되는 영역

                                  함수가 호출될 때마다 새로운 스택 프레임(Stack Frame)이 생성되며

                                  함수 종료 시 자동으로 해제됨

                                  후입선출(LIFO, Last In First Out) 방식, 공간이 한정적

                                  너무 많은 재귀 호출 발생 시 스택 오버플로(Stack Overflow)가 발생할 수 있음