많은 책과 튜토리얼에서 메모리 관리 관행이 스트레스를 받고 그것을 사용한 후에 메모리를 확보하지 않으면 신비 롭고 끔찍한 일이 일어날 것이라고 느꼈습니다.
나는 다른 시스템에 대해 말할 수는 없지만 (나에게 비슷한 관행을 채택한다고 가정하는 것이 합리적이지만) 적어도 Windows에서는 커널이 기본적으로 사용하는 대부분의 리소스 (홀수 소수 제외)를 정리하도록 보장됩니다 프로그램 종료 후 프로그램. 여기에는 다양한 것들 중에서 힙 메모리가 포함됩니다.
사용자가 파일을 사용할 수 있도록 파일을 사용한 후에 파일을 닫으려는 이유 또는 대역폭을 절약하기 위해 서버에 연결된 소켓의 연결을 끊고 싶은 이유를 이해하지만 어리석은 것처럼 보입니다. 프로그램에서 사용하는 모든 메모리를 미세 관리해야합니다.
지금, 나는이 질문은 당신이 필요로 얼마나 많은 메모리를 기반으로 당신이 당신의 기억을 처리하는 방법부터 다양한 것을 동의하고 당신이 그것을 필요로 할 때, 그래서이이 질문의 범위를 좁힐 것이다 : 나는의 조각을 사용해야하는 경우 내 프로그램 수명 동안 메모리가 부족한 경우 프로그램 종료 직전에 메모리를 해제해야합니까?
편집 : 복제본으로 제안 된 질문은 Unix 제품군 운영 체제에만 해당됩니다. 최고 답변은 Linux에만 해당되는 툴 (예 : Valgrind)도 지정했습니다. 이 질문은 대부분의 "일반"비 임베디드 운영 체제를 다루고 프로그램 수명 기간 동안 필요한 메모리를 확보하는 것이 좋은 방법이 아닌 이유입니다.