【发布时间】:2010-10-01 05:04:20
【问题描述】:
我的程序运行到调用 new 关键字会导致上述错误的地步。即char* a = new char[100]。错误是可重现的,并且每次都可以重现。我运行程序直到调用 new 关键字。似乎内存位置已损坏,但我不确定他的问题是什么。
此错误的可能原因是什么?
【问题讨论】:
-
错误的原因是您在代码中做了一些不正确的事情。由于您还没有发布任何代码,因此不可能比这更具体。
-
看看你的代码中之前的内存分配,可能有问题。或者您可能会在分配之前破坏堆写入不适当的地址。
-
0xb6179bb8 是...?让我在我的大错误书中查一下。更严重的是 - 这很可能是堆内存使用的另一个错误:多次删除/释放内存,不匹配的单变量和数组新/删除,覆盖您一直保留的内存块之前或之后的内存,但可能是任何其他可能导致未定义行为的行为。您通常可以使用 valgrind 或 purify 之类的工具来找到您进行某些非法操作导致此问题的点......