10

CRTDBG で大量のメモリ リークを検出しましたが、追跡が難しいため、Visual Leak Detection をインストールしました。これは、仮想デストラクタを持たない抽象クラスを追跡する一貫した数のリークを示しました。これを修正したところ、VLD ではアプリケーションでメモリ リークが表示されなくなりましたが、CRTDBG では引き続きメモリ リークが表示され、約 100 程度のリークが一貫して表示されます。

これらのツールはいずれも C++11 で信頼できますか? 私は一意のポインターを多用しており、それらなしで新しいオブジェクトをほとんど作成していないため、リークがどこから来ているのか理解できません。

4

1 に答える 1

9

のスタックにいくつかのグローバル オブジェクトまたは何かがある場合main()、それらは終了する前に破棄されませんmain()

これらのオブジェクトが動的メモリ割り当てを_CrtDumpMemoryLeaks()行い、 の最後で呼び出すと、main()そのメモリが「リークされた」ものとして表示されます。

于 2013-01-27T14:47:04.440 に答える