#19. Memory_structure
/*
Memory structure
------------------------------------------------------------------------ High Address
| 스택 영역 |
| Stack | --> 메모리 크기를 컴파일러가 예측 가능 할때 사용, OS에 메모리를 받아올때 속도가 빠름
| | |
. . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . . . . . . .
| | |
| v |
| Free |
| ^ |
| | |
. . . . . . . . . . . . . . | . . . . . . . . . . . . . . . . . . . . .
| | |
| Heap | --> 메모리 크기를 예측 불가능 할때
| 힙 영역 |
------------------------------------------------------------------------ 이 아래는 프로그램 시작전 메모리가 잡힌다
| bss |
| | |
| Initialized Global/Static Variables |
| Data |
| 데이터 영역 |
------------------------------------------------------------------------
| |
| Program Code(Read Only) |
| code |
| 코드 영역 |
------------------------------------------------------------------------ Low Address
위로갈수록 가지는 주소값이 크다
os에따라 다를수 있다.
*/
#include <stdio.h>
void fcr(int n)// 매개변수
{
int num2 = 2; //지역변수
}
int main()
{
int num1 = 1; // 지역 (스택 영역)
fcr(null); // int n할당 (스택)
num1++; // 지역 스택 , fcr num2 할당 해제 소멸
fcr(num2); // 다시 n 할당
// num1 해제 , sum 해제,
return 0;
}