메모리 구조
프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 해요.
그리고 프로그램에 사용되는 변수들을 저장 할 메모리도 필요해요.
따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있죠.
프로그램이 운영체제로부터 할당 받는 대표적인 메모리 공간은 4가지가 존재해요
- 코드영역
- 데이터 영역
- 스택 역역
- 힙 영역

코드영역
메모리의 코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다.
데이터 영역
메모리의 데이터 영역은 프로그램의 전역 변수와 정적변수가 저장되는 영역이에요.
데이터 영역은 프로그램 시작과 함께 할당되며, 프로그램이 종료되면 소멸해요.
스택 영역
메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이에요.
스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸해요.
이렇게 스택 영역에 저장되는 함수는 호출 정보를 스택 프레임이라고 하고요.
스택 영역은 푸시 동작으로 데이터를 저장하고, 팝 동작으로 데이터를 인출합니다.
이러한 스택은 후입선출 방식에 따라 동작하므로 가장 늦게 저장된 데이터가 가장 먼저 인출 됩니다.
스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다.
힙 영역
메모리의 힙 영역은 사용자가 직접 관리할 수 있는 '그리고 해야만 하는 ' 메모리 영역입니다.
힙 영역은 사용자에 의해 메로리 공간이 동적으로 할당되고 해제됩니다.
힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당 됩니다.
스택과 힙의 장단점

'여러가지 > 알고리즘 & 자료구조' 카테고리의 다른 글
[백준] 상수 - 2908번 (0) | 2024.05.30 |
---|---|
[백준] 할리갈리 - 21760번 (0) | 2024.05.30 |
[백준] 단어의 개수 - 1152번 (0) | 2024.05.30 |
스택: 데이터를 차곡차곡 쌓기 (0) | 2021.11.29 |
🛩동적 배열이란? (0) | 2021.11.29 |