在我的wxWidgets应用程序中,当以调试模式运行时,我在Visual Studio 2010的输出中收到了这个消息.应用程序运行正常,我在关闭它后才看到这个消息.
Detected memory leaks!
Dumping objects ->
{9554} normal block at 0x003CDCC0,44 bytes long.
Data: < e n d > 20 C1 65 01 01 00 00 00 6E 00 00 00 9C CE 64 01{9553} normal block at 0x003CDB58,8 bytes long.
Data: < D e < > 44 BD 65 01 C0 DC 3C 00
{9552} normal block at 0x003CDC50,48 bytes long.Data: < e > A0 95 65 01 01 00 00 00 19 00 00 00 19 00 00 00
Object dump complete.
在我的程序中,我没有明确分配内存,但是wxWidgets框架是.我第一次收到这样的消息,不知道它的确切原因.
我如何摆脱这种内存泄漏?
解决方法
您只需要在主函数的开头添加以下行.添加此标志,Visual Studio将在创建内存泄漏的行中断.
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetBreakAlloc(9554); _CrtSetBreakAlloc(9553); _CrtSetBreakAlloc(9552);
确保您具有正确的对象正常块地址,因为它们可能会更改,并确保您在_DEBUG上进行编译.
另见:_CrtSetDbgFlag和_CrtSetBreakAlloc MSDN参考.