Heap
- 힙은 자동으로 관리되지 않는 프로세스 메모리 영역이다.
- 수동으로 메모리를 할당해야 하며, 수동으로 메모리를 해제해야 한다.
- 할당된 힙 메모리 삭제에 실패하면 메모리 누수로 이어질 수 있다.
- 힙은 크기의 제한이 없어 방대한 양의 데이터를 저장할 수 있다(시스템의 물리적인 크기에는 제한을 받음).
- 프로그램의 모든 위치에서, 모든 함수에 의해 힙에 접근할 수 있다.
- 스택에 있는 변수는 그 변수를 할당한 함수에 의해서만 접근 가능하지만 힙에 있는 모든 것들은 프로그램에 있는 모든 함수에서 접근 가능하다.
- 힙에 할당하는 것은 과도한 비용을 초래할 수 있기 때문에 가능하면 힙에 할당하는 것을 피하는 것이 좋다.
- 힙에 메모리 할당과 해제를 반복하면 힙이 조각나게 되어 새로운 위치에 필요한 공간을 효율적으로 찾는 것이 더 어려워진다.