C++/summary

전역 메모리, 스택, 힙 메모리엔 어떤것이?

gandus 2010. 9. 8. 09:24
전역 메모리에는 모든 지역 함수(Local Function) 바깥에 선언된 변수(Global Variable)를 할당한다. 이 때 메인 함수는 운영체제가 프로그램 실행을 위해 최초로 호출하는 일종의 지역 함수로 구분된다.

스택 메모리는 함수 내에 선언된 지역 변수들을 위한 공간이다. 지역 변수는 필요한 공간의 크기를 컴파일 시에 확정한다. 함수 호출시 그에 해당하는 지역 변수를 위한 공간을 확보하며 해당 함수의 실행이 끝나게 되면 지역 변수의 공간을 자동으로 해제하게 된다.

힙 메모리의 경우 프로그램 실행시 일정량의 힙 메모리를 할당하게 되며 프로그램 실행 중 필요에 의한 동적 메모리 할당을 위한 공간이 힙 메모리이다. (C에서는 malloc,C++ 에서는 New 명령을 사용하여 메모리를 할당하게 된다.) 힙 메모리의 크기는 운영체제가 정한 최대 가상 메모리(Virtual Memory) 만큼이다.