[解決済み】実行時チェックの失敗その2 - 変数'foo'周辺のスタックが破損していた。
2022-02-17 11:26:11
質問
試験勉強をしているのですが、模擬試験にこんなのが出てきました。問題は "次のコード断片はどのタイプのエラーを引き起こしますか?
エラーはないだろうと思っていたのですが、私もVS13でコンパイルすると、エラーが出ます。
実行時チェックの失敗 #2 - 変数 'foo' の周りのスタックが破損しています。
const int MAX = 500;
int main(void)
{
int foo[MAX];
for (int i = 0; i <= MAX; i++)
{
foo[i] = i * 2;
cout << foo[i] << endl;
}
cout << "Press any key to exit." << endl;
cin.ignore(2);
return 0;
}
解決方法は?
の有効なインデックス
foo
は
0
から
MAX-1
を含む。
MAX
は配列の終端を過ぎています。
までを含むループが実行されます。
MAX
. これは配列の終端を越えて書き込まれ、スタックを破壊します。
配列のサイズを
MAX+1
そのため
MAX
が範囲内にある場合、またはループ条件を
i < MAX
に到達する前に停止するように
MAX
.
関連
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】'cout'は型名ではない
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み] Noobish Arrayの問題。実行時チェックの失敗 #2 - 変数 'arr' の周りのスタックが破損していました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない