VisualC++でメモリリークを自動検出する方法

C/C++でコーディングするなら避けて通れないのがメモリリーク対策です。

高価なメモリリーク検出ツールもありますが、VCではそんなもの買わなくてもメモリリークを検出する方法が用意されています。

1行コードを付け足すだけ

この機能の使用方法は簡単!

この1行を追加するだけです。

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

サンプルコード

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

int main(void)
{
    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

    char* p = (char*)malloc(128);

    return 0;
}

これを実行すると、実行後に出力ウインドウにメモリリークが起きたことが表示されます。

便利ですね。