프로그램을 실행시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리 공간을 할당해준다.
할당되는 메모리 공간은 크게 코드(Code), 데이터(Data), 힙(Heap), 스택(Stack) 영역으로 나뉜다.
실행할 프로그램의 코드가 저장되는 영역으로, 텍스트 영역이라고도 한다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. (그림에는 X)
int a = 10; // a는 데이터 영역에 할당된다.
int main()
{
...
}
int a = 10;
int b = 20;
void fct1(int c)
{
int d = 30; // 매개 변수 c와 지역 변수 d가 스택 영역에 할당
}
void fct2(int e)
{
int f = 40; // 매개 변수 e와 지역 변수 f가 스택 영역에 할당
}
int main()
{
int i = 100; // 지역 변수 i가 스택 영역에 할당
fct1(i);
fct2(i);
}
👁️🗨️ 참고
https://junghyun100.github.io/힙-스택차이점
https://dsnight.tistory.com/50