-4

私はこの問題を数日間抱えていますが、それを修正する方法は何も見つかりません. 私はこのようなエラーを一度も経験したことがありません:

myproject.exe の 0x00511e0e (msvcr100d.dll) で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0xfdfdfdfd.

私は本当に何をすべきか途方に暮れています。何か助けはありますか?

4

1 に答える 1

6

0xfdfdfdfdMSVC デバッグ ヒープ実装 (詳細はこちら)の魔法の値であり、割り当てられたストレージ領域の直前と直後にカナリアとして配置されます。どういうわけか、それをポインターとして使用して書き込みを行っています。

コードを表示する必要はないと考えていたため、エラーが何であるかを確実に言うのは困難です。次の 2 つのいずれかを疑っています。

  1. ポインター配列を割り当て、初期化されていない最後の要素の後ろにある「要素」を使用するか、(より可能性が高い)
  2. 最初のデータ メンバーがポインターであるオブジェクト (またはベクトル) の配列を割り当て、同じことを行います。

後者の可能性が高いと思う理由は、初期化されていないポインター配列でポインターを使用すると、最後に到達する前に壊れてしまうため、最後から開始する必要があり、これは珍しいことです。

于 2014-12-09T08:18:39.900 に答える