私はVisual studio 2015を使用していますが、私はすべてのバージョンの一般的な回答が好きです。Visual Studioはプログラムのデバッグを停止するとメモリを自動的にクリーンアップしますか?
は私のコードは、メモリがリークが発生している場合、それは、Visual Studio(F5
)内部終了値= 0を実行します - デバッグモードで
- (Q1)、それは実際にリークしますか?
- (Q2)リリースモードでは、本当にリークしますか?
- (Q3)で - :
私のコード予備いくつかのヒープメモリ場合は私のコードが適切にメモリを解放することができます前に、私は赤い四角形のボタン(
stop
)を押してにそれを終了デバッグモード、それは本当に漏れますか? - (Q4)リリースモードでは、本当にリークしますか?
私のプログラムは、いくつかのコンピュータの再起動後に徐々に遅くなります。それは私の想像力、つまりGPUに関係するかもしれません。
ただし、後で実行するパフォーマンスに影響を与えることなく、run->allocate 10MB->red button
というケースも数回覚えています。
プログラムが閉じられると、OSはそのプログラムによって割り当てられたメモリを再利用します。 – DeiDei
@DeiDei私は何かを真剣に誤解するかもしれません。本当にそう思ってる? 'char * x = new char [10000]'をrelease - >を指定せずに割り当てると、リリースモードで実行されます。私の '.exe'が存在すると、10000バイトがOSに戻されますか?もしそうなら、私のプログラムからのすべてのメモリリークは長期的にはOSに影響しませんか?したがって、コンピュータの再起動はメモリリークとはまったく関係ありません。 – cppBeginner
デバッグモードまたはリリースモードは関係ありません。プログラムが終了すると解放されます。 – DeiDei