配列に要素を挿入するには、インターネット上の次のコードを参考にしてください。特に最初の挿入時に配列のサイズが増加し、ループの印刷のたびにゴミが印刷されてしまいました。エラーの詳細を知りたいと思っています。"***スタックスマッシングが検出されました***:./a.out terminated Aborted(コアダンプされました)" - 配列の挿入
コードが
#include <stdio.h>
void main()
{
int k = 3, n = 5, i = 0, j = n;
int LA[] = {1,3,5,7,8};
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("%d ",LA[i]);
}
n = n + 1;
while(j >= k){
LA[j+1] = LA[j];
j = j - 1;
}
LA[k] = 10;
printf("\nThe array elements after insertion1 :\n");
for(i = 0; i<n; i++) {
printf("%d ",LA[i]);
}
n = n + 1;
while(j >= k){
LA[j+1] = LA[j];
j = j - 1;
}
LA[k] = 20;
printf("\nThe array elements after insertion2 :\n");
for(i = 0; i<n; i++) {
printf("%d ",LA[i]);
}
n = n + 1;
while(j >= k){
LA[j+1] = LA[j];
j = j - 1;
}
LA[k] = 30;
printf("\nThe array elements after insertion3 :\n");
for(i = 0; i<n; i++) {
printf("%d ",LA[i]);
}
}
出力はウル時間
The original array elements are :
1 3 5 7 8
The array elements after insertion1 :
1 3 5 10 7 8
The array elements after insertion2 :
1 3 5 20 7 8 2087809280
The array elements after insertion3 :
*** stack smashing detected ***: ./a.out terminated
1 3 5 30 7 8 2087809280 -1077687568 Aborted (core dumped)
おかげです。
詳細であることを起こるものは何でもあることを行っているが、あなたがスタックを破損していることです。 "楽しみと利益のためにスタックを壊す"ルックアップ。 (免責事項:私はまだコードを読んでいない) –