메모리영역

C# 2008. 12. 9. 19:22
출처 바람처럼 어디론가 나만의 여행을 가고 싶다 | 바람향기
원문 http://blog.naver.com/aroma_guy/20006951137

메모리 영역

 

- 코드(Code)영역

코드 자체를 구성하는 메모리 영역. 즉 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역이다.

 

- 데이터(Data)영역

데이터가 보관된다. 예를 들면 전역변수(global), 정적변수(static), 그 외 초기화된 각종 배열과 구조체, 자료들이 저장된다.

 

- 스택(Stack)영역

프로그램이 자동으로 사용하는 임시 메모리 영역에 해당합니다. 즉 자동 변수를 저장하거나 함수로 인수를 보낼 때, 복귀 번지를 저장할 때 등에 사용된다. 스택 사이즈는 각 프로세스마다 할당된다. 하지만 프로세스가 메모리에 로드될 때 스택 사이즈가 고정되어 있어, 런타임시에 스택 사이즈를 바꿀 수는 없다. 참고로 VC++6.0에서는 Project Settings에서 스택 사이즈를 바꿀 수 있다.

 

- 힙(Heap)영역

프로그래머가 스스로 할당한 메모리 영역(동적 메모리 영역)을 뜻한다. 즉 C의 함수 중에 메모리를 할당하는 함수인 malloc() 등을 사용하여 할당된 메모리가 힙 영역에 해당된다. 메모리 모델에 따라서 사용하는 함수가 달라지는데, 메모리 할당 때는 malloc(), farmalloc() 함수를 사용하고 재할당 때는 realloc() 함수를, 메모리 해제 시는 free()나 farfree() 함수를 사용한다.

 

Posted by Sting!

댓글을 달아 주세요