1. ホーム
  2. c++

[解決済み】Errorの一般的な解決方法。変数 'x' の周りのスタックが破損していた

2022-02-03 17:54:32

質問

VS2010 で、デバッグ中にエラーを表示するプログラムがあります。

Error: Stack around the variable 'x' was corrupted

これは、スタックオーバーフローが発生しそうな関数を教えてくれますが、問題がどこにあるのか視覚的に確認することはできません。

VS2010 でこのエラーをデバッグする一般的な方法はありますか?どの書き込み操作が不正なスタックメモリを上書きしているのかを特定することは可能でしょうか? 感謝

解決方法を教えてください。

<ブロッククオート

VS2010 でこのエラーをデバッグする一般的な方法はありますか?

いいえ、そんなことはありません。あなたが行ったことは、何らかの方法で未定義の動作を呼び出したということです。これらの動作が未定義である理由は、一般的なケースでは検出/診断が非常に困難であるためです。時には、証明できるほど不可能なこともあります。

しかし、あなたの問題を引き起こす典型的なものは、やや少ない数です。

  • メモリの不適切な処理。
    • 何かを2回削除する。
    • 誤った削除の種類を使用する ( free で割り当てられたものに対して new など)。
    • メモリが削除された後に何かにアクセスすること。
  • ローカルへのポインタまたは参照を返すこと。
  • 配列の終端を越えての読み書きをする。