프로세스 메모리 구조

image.png

코드 영역

int add(int a, int b) {
	return a + b; // 이 코드 자체가 코드 영역에 저장
}

데이터 영역

  1. 초기화된 데이터 영역

    int g1 = 10;       // 초기화된 전역 변수 -> Data 영역
    static int s1 = 5; // 초기화된 static 변수 -> Data 영역
    

힙 영역

#include <stdlib.h>
int* p = (int*)malloc(sizeof(int) * 100); // 힙에 100개 int 배열 생성
free(p) // 해제 필요

스택 영역

void func() {
	int x = 10; // 스택에 저장
}
=>
데이터 영역과 다르게 지역 변수는 스택 영역에 저장