반응형
# 메모리 공간
1. 스택 영역
- 프로그램 함수 내에서 사용하는 지역변수(Local variable)가 저장된다.
- 함수를 호출하는 경우 되돌아오는 주소인 복귀주소(Return Address)를 가지고 있다.
- 함수의 인자 값을 가지고 있다.
2. 힙 영역
- 프로그램 실행 중 메모리를 동적으로 할당하는 경우 힙 영역에 할당된다.
- int *i 변수의 선언은 Integer(정수형) 변수의 주소를 저장할 수 있는 포인터 변수를 선언한 것이다.
- malloc() 함수를 사용해서 동적으로 메모리를 할당한다.
- 동적 메모리 할당 함수를 사용해서 메모리를 할당하면 힙영역에 할당된다. 또한 동적으로 할당된 메모리는 free() 함수를 사용해서 해제해야 한다.
3. 데이터 영역
- 전역변수(Global variable)를 선언하는 경우 전역변수가 저장된다.
- 정적변수(Static variable)를 선언하면 정적변수가 저장된다.
- 데이터 영역에 변수가 선언되면 자동으로 초기화 된다.
4. 텍스트 영역
- 읽기만 가능한 메모리 영역이다. (Read Only)
- 프로그램 코드가 저장된다.
반응형