IT강의/프로그래밍언어

메모리의 구조와 저장되는 내용

샤핑 2021. 7. 22. 15:58
728x90
반응형

 

이번 시간에는 메모리의 구조와 각 영역에 저장되는 내용을 살펴보겠습니다. 요약한 내용은 위의 사진과 같습니다. 메모리는 아래와 같이 4가지 영역으로 나누어져 있습니다.

 

Code: 상수, 명령문(코드)을 저장

Data: 전역 변수, 정적 변수를 저장

Heap: 동적 배열(동적 메모리)을 저장

Stack: 지역 변수, 매개 변수, 정적 배열을 저장

 

 

그리고 메모리는 아래와 같이 2가지로 나누어집니다.

 

정적 메모리(static memory): 프로그램이 실행 되자마자 만들어집니다.

동적 메모리(dynamic memory): 프로그램 실행 후 명령문이 실행될 때 만들어집니다.

 

 

C++ 소스 코드로 살펴보겠습니다.

 

#include<iostream>

using namespace std;

 

int a = 1;  // 전역 변수, 실행 되자마자 data 영역에 저장

int b[5];  // 전역 변수, 실행 되자마자 data 영역에 저장

 

int main(){

     int c = 2;  // 지역 변수, 실행 되자마자 stack 영역에 저장

     int d[5];  // 정적 배열, 실행 되자마자 stack 영역에 저장

 

     static int e = 3;  // 정적 변수, 실행 되자마자 data 영역에 저장

 

     a = a + c + e;  // 연산, 실행 후 명령문을 만나면 code 영역에 저장

     c = 10;  // 연산, 실행 후 명령문을 만나면 code 영역에 저장

 

     int* f = new int[5];  // 동적 배열, 실행 후 명령문을 만나면 heap 영역에 저장

 

     delete[] f;

     return 0;

}

 

 

<출처>

메모리의 구조, http://tcpschool.com/c/c_memory_structure

728x90
반응형
LIST