gpt4 book ai didi

c++ - 堆调试 : Assert failure in dbgdel in MS VC++ 2005

转载 作者:行者123 更新时间:2023-11-28 08:02:36 26 4
gpt4 key购买 nike

我在我的 MS VC++ 2005 项目中启用了堆调试,当程序退出最后一个析构函数时,我在那里调用了 _CrtDumpMemoryLeaks()(也启用了 _CRTDBG_MAP_ALLOC。但随后我看到了以下调试断言屏幕:

enter image description here

之后我点击重试来调试它,它带我到一些代码(这不是我的),在那里我看到类似的东西:

char* name;
cstub.get("...", name);
delete [] name;

我在想,也许 name 是在 get(..) 函数内部分配的;无论如何,我的问题是:从屏幕截图来看,这是内存/堆错误吗?我可能必须深入研究 cstub 的 get 函数在做什么。感谢您的任何想法。

最佳答案

您可能正在混合运行时。

如果分配器位于使用不同版本的 Visual Studio 编译的 DLL 中,则您无法从代码中释放内存。

这就是为什么返回已分配内存的库还包含释放该内存的函数或方法。

关于c++ - 堆调试 : Assert failure in dbgdel in MS VC++ 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com