- 프로그램이 OS에 의해 실행되어 프로세스가 되면 이 프로세스는 메모리 공간을 할당받는다.
- 프로세스에 할당되는 메모리 공간은 Data, Heap, Stack영역으로 나뉜다.
- Data 영역: 전역변수와 static변수가 할당되는 영역. 전역변수와 static변수는 프로그램이 시작되면 할당되고 종료되면 메모리에서 소멸된다.
- Heap 영역: 메모리 공간을 동적할당할 때 할당되는 영역. 프로그램 시작시에 정해진 stack영역과는 달리 프로그램 실행 도중(런타임시)에 할당되는 영역이다.
- Stack 영역: 함수 내의 지역변수와 매개변수가 저장되는 영역. 함수가 호출될 시 생성되고 호출이 완료되면 사라진다. 이 stack영역에 얼만큼의 메모리 공간이 할당될지는 컴파일 시에 결정된다. 함수가 여러번 재귀로 호출되면 이 스택이 꽉 차서 stack overflow가 난다. C언어에서는 실행중인 프로그램에서 stack overflow가 나면 에러를 발생시키고 곧바로 강제 종료 시킨
'Programming > Windows Visual C++' 카테고리의 다른 글
/MT /MD 옵션의 차이 (0) | 2020.03.16 |
---|---|
.lib와 .dll의 차이 (0) | 2020.03.16 |
윈도우 서비란 무엇인가? 서비스 만들기 (0) | 2020.03.16 |
함수에서 문자열을 리턴하는 올바른 방법 (0) | 2020.03.16 |
.h파일 include하는 올바른 방법 (0) | 2020.03.16 |