c++ - 删除指针时堆损坏错误

标签 c++ visual-c++ heap-corruption

删除指针时出现堆损坏错误。对于这个项目,Randomized Base Address 的链接参数设置为 Disable Image Randomization。不知道为什么这样设置。无论如何,只有在包含库的特定头文件时,我才会收到该错误。奇怪的是,即使包含该头文件,如果将随机化基地址设置为启用图像随机化,也不会出现该错误。那么是否真的存在堆损坏,或者我应该只更改链接参数?

最佳答案

Randomized Base Address 指示是否始终在同一地址加载库。随机化它提供了一定程度的安全性,以防止利用调用/修改代码。

几乎可以肯定您的项目中存在堆问题,并且很可能与包含的 header 无关。可能是 header 引入了一些使用损坏堆的符号,从而导致了问题。同样,当随机化基地址时,您的堆仍然会损坏,但问题从未以明显的方式表现出来(尽管事情可能会稍微不正确)。

如果您能够使用内存检查器或调试分配器,它们可能会为您提供帮助。

否则不幸的是,如果没有代码/更多信息,将很难给您额外的提示。

关于c++ - 删除指针时堆损坏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3200081/

相关文章:

c++ - 我正在尝试创建一个 C++ 蛇游戏,但我似乎无法绘制第二个高度边界,我该如何解决这个问题?

c++ - 由于引用,重载调用不明确

c++ - boost::asio::async_read_until 与自定义匹配条件运算符重载混淆

c++ - 写入文件时出现堆损坏

c++ - realloc 在以前稳定的功能中崩溃

c++ 在不使用全局变量的情况下捕获 ctrl+c

c++ - 在我的组合框中输入数据

regex - 使用正则表达式查找和替换来重构 Visual C++ 中的方法调用

c++ - 为什么不正确的缓冲区内存分配只会在 Release模式而不是 Debug模式下编译时导致崩溃?

c++ - 如何调试 armv5 上的堆损坏