/ / c ++メモリリークとガベージメモリ - C ++、メモリ管理、メモリリーク

C ++メモリリークとガベージメモリ - C ++、メモリ管理、メモリリーク

私は、メモリを動的に割り当てるとC ++では、適切に管理していないので、ガベージメモリを持つことができ、メモリリークが本質的に発生する可能性があります。たとえば、メモリアドレスを指すポインタがあり、現在のアドレスを解放する前にこのポインタを別のアドレス空間に割り当てると問題になります。しかし、私が理解していないことは、ガーベジ・メモリを追加し続ける悪いプログラムがあると言うことですが、プログラムを終了すると、すべてが元の状態に戻ってしまうのです。たとえば、C ++プログラムで導入されたガベージメモリがある場合、そのガベージメモリを指すポインターがなくなり、プログラムを閉じた後、ガベージメモリはすべて解放されますか?プログラムが終了する前にガベージメモリをクリーニングする方法をプログラムはどのように知っていますか?

回答:

回答№1の場合は3

ごみのメモリはありません、あなたのプログラムではありませんメモリを割り当てたり解放したりします。その基礎をなすos。あなたはそのサービスを使って、OSの上で作業しています。ヒープメモリとフリーストアは、これらのサービスが提供する抽象化にすぎません(このようなファイルの抽象化の中でも、「私はこのユニークなCPUで動作する唯一のプロセスです」など)


回答№2の場合は1

Windows OSでは、オペレーティングシステムはプロセスによって割り当てられたメモリをクリーンアップします。だから、基本的にプロセスに与えられたスペースを、それが何を含んでいるのか気にせずに捨て去る。