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