内存泄露
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
class FindMemoryLeaks
{
_CrtMemState m_checkpoint;
public:
FindMemoryLeaks()
{
_CrtMemCheckpoint(&m_checkpoint);
};
~FindMemoryLeaks()
{
_CrtMemState checkpoint;
_CrtMemCheckpoint(&checkpoint);
_CrtMemState diff;
_CrtMemDifference(&diff, &m_checkpoint, &checkpoint);
_CrtMemDumpStatistics(&diff);
_CrtMemDumpAllObjectsSince(&diff);
};
};
可以在main之前用FindMemoryLeaks test,这样也可以检查,原理是快照的比对,不过对于全局类和静态类会有误报的情况