답변:
아마도 데이터 구조 관점이 아닌 메모리 할당 관점에서 힙 을 의미하는 것 입니다 (용어에는 여러 의미가 있음).
매우 간단한 설명은 힙 이 동적으로 할당 된 메모리가 상주 하는 메모리의 일부라는 것입니다 (예 :를 통해 할당 된 메모리 malloc
). 힙에서 할당 된 메모리는 다음 중 하나가 발생할 때까지 할당 된 상태로 유지됩니다.
free
'D할당 된 메모리에 대한 모든 참조가 손실 된 경우 (예 : 더 이상 포인터를 저장하지 않은 경우) 메모리 누수가 있습니다. 여기에는 메모리가 여전히 할당되어 있지만 더 이상 쉽게 액세스 할 수있는 방법이 없습니다. 누출 된 메모리는 향후 메모리 할당을 위해 회수 할 수 없지만 프로그램이 종료되면 운영 체제에서 메모리를 해제합니다.
이것을 로컬 메모리 (메소드 내에 정의 된)가 존재하는 스택 메모리 와 대조해보십시오 . 스택에 할당 된 메모리는 일반적으로 함수가 반환 될 때까지만 유지됩니다 (정적 로컬 변수와 같은 일부 예외가 있음).
이 기사 에서 힙에 대한 자세한 정보를 찾을 수 있습니다 .
메모리 힙은 동적으로 할당 된 메모리를 유지하기위한 일반적인 구조입니다. Wikipedia의 Dynamic_memory_allocation 을 참조하십시오 .
수영장, 스택 및 말뚝과 같은 다른 구조가 있습니다.
프로세스에서 사용중인 메모리 관리자가 운영 체제에서 할당 한 메모리 청크입니다. malloc()
특히 호출 은 운영 체제를 직접 처리하지 않고이 힙에서 메모리를 가져옵니다.