为RtlFreeHeap指定了无效地址的原因是什么

时间:2010-05-19 02:20:15

标签: c++ visual-c++ opencv

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

3 个答案:

答案 0 :(得分:5)

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

如果没有看到实际代码,很难说清楚原因。您可以附加一些调试工具,如WinDbg,并找出导致此错误的原因。

答案 1 :(得分:3)

因为你的堆已经腐败了。您可能要么释放内存两次,要么使用一些未初始化的指针或类似的东西。

答案 2 :(得分:0)

就我而言,接下来是:

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