-4

我已经有这个问题好几天了,我找不到任何关于如何解决它的问题。我从来没有遇到过这样的错误:

myproject.exe 中 0x00511e0e (msvcr100d.dll) 处的未处理异常:0xC0000005:访问冲突写入位置 0xfdfdfdfd。

我真的不知道该怎么办。有什么帮助吗?

4

1 回答 1

6

0xfdfdfdfd是 MSVC 调试堆实现中的一个神奇值(详情请点击此处),它作为金丝雀直接放置在分配的存储区域之前和之后。不知何故,您将它用作指针并写入它。

很难确定错误是什么,因为您认为没有必要显示任何代码。我怀疑两件事之一:

  1. 您分配一个指针数组并使用未初始化的最后一个元素后面的“元素”,或者(更有可能)
  2. 您分配一个对象数组(或可能是一个向量),其第一个数据成员是一个指针,并执行相同的操作。

我认为后者更有可能的原因是在未初始化的指针数组中使用指针会在你到达终点之前中断,所以你必须从最后开始,这将是一件不寻常的事情。

于 2014-12-09T08:18:39.900 回答