マッピィ Techlog

日々思うこと

【C++】メモリリークを検出する方法

前々から知ってはいましたが、しばしば忘れる…。

VisualStudio2012で作成

#include <crtdbg.h>
int main()
{
    int* a = new int();
    _CrtDumpMemoryLeaks();
    return 0;
}

という方法もあるのですが、これだとプログラムが終わる直前での判定になってしまうので、

#include <crtdbg.h>
int main()
{
    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
    int* a = new int();
    return 0;
}

こちらの方がいいのでは、と思いました。