检测到内存泄漏

Vin*_*arg 11 c++ wxwidgets memory-leaks visual-studio-2010

在我的wxWidgets应用程序中,在调试模式下运行时,我在Visual Studio 2010的输出中收到了此消息.应用程序运行正常,我在关闭它之后才看到它.

检测到内存泄漏!

转储对象 - >

{9554}正常块位于0x003CDCC0,44个字节长.
数据:<end> 20 C1 65 01 01 00 00 00 6E 00 00 00 9C CE 64 01

{9553}正常块在0x003CDB58,长度为8个字节.

数据:<D e <> 44 BD 65 01 C0 DC 3C 00
{9552}正常块,位于0x003CDC50,48字节长.

数据:<e> A0 95 65 01 01 00 00 00 19 00 00 00 19 00 00 00

对象转储完成.

在我的程序中,我没有明确地分配内存,但是wxWidgets框架是.我第一次收到这样的消息,并且不知道它的确切原因.

我怎样才能摆脱这种内存泄漏?

meh*_*ehi 33

您只需在主函数的开头添加以下行.添加此标志,Visual Studio将在创建内存泄漏的行中断.

    _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
    _CrtSetBreakAlloc(9554);
    _CrtSetBreakAlloc(9553);
    _CrtSetBreakAlloc(9552);
Run Code Online (Sandbox Code Playgroud)

确保您具有正确的对象普通块地址,因为它们可能会更改并确保您在_DEBUG上进行编译.

另请参见:_CrtSetDbgFlag_CrtSetBreakAlloc.

  • 嗨,你是怎么想出9609的? (4认同)
  • @bluepiranha指的是括号之间的开头数字.所以,在他的情况下,他有一个报告{9609}.(我知道这是一个陈旧的评论;这对于像我这样的人也在寻找这些信息). (3认同)