Visual Studio 2005/2008 でメモリリークの検出方法に関して、
MSDNに以下のような記述があります。
http://msdn.microsoft.com/ja-jp/library/e5ewb1h3(VS.80).aspx
この方法を使って、
#define _CRTDBG_MAP_ALLOC
#include <stdlib .h>
#include <crtdbg .h>
#include <map>
static std::map<std ::string, std::string> sMap;
int main(int argc, char* argv[])
{
_CrtDumpMemoryLeaks();
return 0;
}
このようなプログラムを書くと、「メモリリークが検出された」と表示されます。どうやら、実際にはメモリリークは起こってはいないようなのです…。
一方で、
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
を使うと、メモリリークは検出されませんので。ただのバグなのでしょうか?
Comments
Powered by Facebook Comments

Note

