前提・実現したいこと
C言語初心者で配列の勉強をしています。
Visual Studio 2019にて”デバッグの開始”を行ったところ
下記エラーが発生します。
エラーを解決する方法と、このようなエラーを発生させないためには
なにを勉強すればいいか教えて頂けないでしょうか。
発生している問題・エラーメッセージ
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
該当のソースコード
#include<stdio.h> #define N 20 /*要素の数*/ int main(void) { int a[N] = {1,5,4,9,23,16,2,13}; int i, temp, flag; do { flag = 0; for (i = 0; i < N + 1; i++) { if (a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; flag = 1; } } } while (flag == 1); for (i = 0; i < N; i++) { printf("%d ", a[i]); printf("\n"); } return 0; }
試したこと
webで調べたところ、スタック破壊が起きているような記載を見かけました。
そこで、defineのNを大きくしてみましたが(10とか)、解決しませんでした。
ちなみにpaizaのwebエディタで同様の記述を行ったところ、エラーが
出なかったのも腑に落ちず、VS2019の操作方法に誤りがあるのかも疑っています。
補足情報(FW/ツールのバージョンなど)
Visual Studio 2019
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。