指定给 RtlFreeHeap 的地址无效的原因是啥

Posted

技术标签:

【中文标题】指定给 RtlFreeHeap 的地址无效的原因是啥【英文标题】:what is the reason of Invalid Address specified to RtlFreeHeap指定给 RtlFreeHeap 的地址无效的原因是什么 【发布时间】:2010-05-19 02:20:15 【问题描述】:

开发环境是vs2008,语言是c++,当我发布问题时,一开始它运行没有问题,但几分钟后它停止并显示如下错误:HEAP [guessModel.exe]:指定的地址无效RtlFreeHeap(003E0000,7D7C737B)。 谁能告诉我错误的原因。非常感谢。

【问题讨论】:

您需要显示一些代码,以便我们进一步帮助您,但通常在这种情况下,您描述的代码基本上可能在您的代码中的任何位置。 【参考方案1】:

我的猜测是您正在尝试使用野指针。指向已释放内存的指针已被取消引用,或者某些无效指针已传递给 free 函数。

不看实际代码很难说出原因。您可以附加一些调试工具,例如 WinDbg,并了解此错误的原因。

【讨论】:

对不起。在这种情况下,您可能必须在问题本身中发布最少的代码。【参考方案2】:

这是因为您的堆已损坏。您可能正在释放内存两次或使用一些未初始化的指针或类似的东西。

【讨论】:

【参考方案3】:

在我的情况下是下一个:

错误地在我的资料中使用了两个同名的类 一个类被隐藏到 CPP 中,另一个具有正常的视图标题和 CPP 实现。 编译没有错误,但在某些情况下出现了分段错误信号)

【讨论】:

以上是关于指定给 RtlFreeHeap 的地址无效的原因是啥的主要内容,如果未能解决你的问题,请参考以下文章

指定了一个无效的目标地址

怎么给无线网卡指定ipv6地址

org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器的地址无效

电脑连不上宽带,显示说无法连接到指定目标是啥原因

ORA-22275的原因:指定了无效的LOB定位符

通过代码给数据库添加时提示无效的sql数据类型,是啥原因