2014-07-19 4 views
-2

C++에서 메모리를 동적으로 할당했지만 제대로 관리하지 않으면 쓰레기 메모리가 생길 수 있으며 메모리 누수가 발생할 수 있으며 그 이유는 분명합니다. 예를 들어 메모리 주소를 가리키는 포인터가 있고 현재 주소를 해제하기 전에이 포인터를 다른 주소 공간에 할당하면 문제가됩니다. 하지만 내가 이해할 수없는 것은 가비지 메모리를 계속 추가하는 나쁜 프로그램이 있다고 가정 해 봅시다. 그러나 프로그램을 닫을 때 모든 것이 정상으로 돌아 오는 방법은 무엇입니까? 예를 들어 C++ 프로그램에서 소개 된 가비지 메모리가 있으므로 가비지 메모리를 가리키는 포인터가 더 이상 없으며 프로그램을 닫은 후 가비지 메모리가 모두 해제됩니다. 프로그램이 닫히기 전에 쓰레기 메모리를 청소하는 방법을 프로그램에서 어떻게 알 수 있습니까?C++ 메모리 누수 및 가비지 메모리

답변

1

Windows OS에서 운영 체제는 프로세스에 의해 할당 된 메모리를 정리합니다. 그래서, 기본적으로 프로세스에 주어진 공간을 버리지 않고 그 프로세스를 처리합니다.

+0

추가 @ OP : 삭제를 생략하지 않는 것을 의미합니다 괜찮아. – deviantfan

3

가비지 메모리가 없으며 메모리를 할당하고 해제하는 프로그램이 아닙니다. 그것의 근본적인 OS. 당신은 서비스를 사용하여 OS의 최상위에서 작업하고 있습니다. 힙 메모리와 무료 저장소는 이러한 서비스가 제공하는 추상화 일뿐입니다 ("이 고유 한 CPU에서 실행되는 유일한 프로세스"등의 다른 추상화 중)