프로그램, 프로세스가 실행되기 위해서는 먼저 프로그램이 메모리에 load되어야 한다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리 공간도 필요하다.
따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있고, 아래는 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간이다.

코드(Code) 영역
데이터(Data) 영역
- 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역
- 프로그램 시작과 함께 할당되며, 종료와 함께 소멸됨
스택(Stack) 영역
- 함수 호출과 관계되는 지역변수와 매개 변수가 저장되는 영역
- 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다
힙(Heap) 영역
- 사용자가 직접 관리하는 영역
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다
- 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.