多くの本やチュートリアルで、メモリ管理の実践が強調されていることを聞き、使用後にメモリを解放しないと、不可解で恐ろしいことが起こると感じました。
私は他のシステムについて話すことはできません(私にとっては同様のプラクティスを採用していると仮定するのは合理的です)が、少なくともWindowsでは、カーネルは基本的にほとんどのリソース(奇数を除いて)をクリーンアップすることを保証されていますプログラム終了後のプログラム。これには、ヒープメモリなどが含まれます。
ユーザーが利用できるようにするためにファイルを使い終わった後にファイルを閉じたい理由や、帯域幅を節約するためにサーバーに接続されたソケットを切断したい理由を理解していますが、プログラムが使用するすべてのメモリをマイクロ管理する必要があります。
今、私はこの質問はあなたが必要とどのくらいのメモリに基づいており、あなたの記憶を処理する方法以来、幅広いであることに同意し、あなたがそれを必要とするとき、私はこれまで、この質問の範囲を狭めるます:私はの作品を使用する必要がある場合プログラムの存続期間中のメモリ、プログラム終了直前にメモリを解放する必要は本当にありますか?
編集:重複として示唆された質問は、オペレーティングシステムのUnixファミリーに固有のものでした。その一番の答えは、Linux固有のツール(Valgrindなど)でさえも特定しました。この質問は、ほとんどの「通常の」非組み込みオペレーティングシステムと、プログラムの寿命を通じて必要とされるメモリを解放するのが良い習慣であるか、またはそうでない理由を網羅することを意図しています。