##VCランタイムの機能を使ったメモリリークの調査
###メモリリーク時にCRTにダンプさせるようにする
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
###プログラムをデバッガで実行し、ダンプを確認
Detected memory leaks!
Dumping objects ->
{52992} normal block at 0x000000001E27F290, 72 bytes long.
Data: < > 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
52992回目に確保した72バイトのメモリが漏れたようです。
もし毎回、52992回目に確保したメモリが漏れるようであればその回のメモリ確保時にデバッグブレイクさせることで漏れている犯人を突き止められます。
###指定した回のメモリ確保時にデバッグブレイクさせる
_CrtSetBreakAlloc(52992);
##UMDHを使ったメモリリークの調査
UMDHとはMicrosoft Debugging Tools for Windowsに含まれているコマンドラインツールの名前です。OSと結託して動くので非常に強力です。