メモリリークの検出方法   2005/10/23 (Sun)  14:58  [Programming]

プログラマ専用エントリ。VC++でのメモリリークの検出方法。ネタ元は青島のしま
使用してみましたがかなり便利かも。

#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

と定義しておいて、プログラムの最初の方に

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

と記述しておくと、プログラム終了時にメモリリークの検出ができるようです。

デバッグビルド専用で、デバッグありで開始すると、メモリリークが起きている場合プログラム終了時に「出力」ウィンドウに情報が表示されます。malloc, new 共に検出可能なようです(詳しくは各ヘッダファイル参照)。なお、Web 上の MSDN ライブラリでは「Enabling Memory Leak Detection」のタイトルで検索すれば詳細が表示されると思います。

wikieditish message: Ready to edit this entry.