c – 检测到的内存泄漏

前端之家收集整理的这篇文章主要介绍了c – 检测到的内存泄漏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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参考.

原文链接:https://www.f2er.com/c/114592.html

猜你在找的C&C++相关文章