这是代码。为什么我面对这个错误,我应该是指什么来源的信息,以纠正这种错误,让我了解“如果我这样做,这样一来,我会得到‘X’错误”这是什么意思,我该如何纠正它***堆栈粉碎检测***:./array1output终止
#include<stdio.h>
void main()
{
int i,avg,sum;
int marks[30]; // Array declaration
for(i=0;i<31;i++)
{
printf("Enter Marks:");
scanf("%d",&marks[i]); // Stores data in Array
}
for(i=0;i<31;i++)
sum=sum+marks[i];
avg=sum/30;
printf("Average marks of student \t %d",avg);
}
'为(I = 0;我<31;i++)' -->'为(I = 0; I <30;我++)' – chux
的'诠释标记[30]'限定尺寸为30(为0的数组.. 29个索引),但在你的'for loops'中,你正在访问不存在的标记[0123]。 – hmofrad
要添加到@ MohammadH.Mofrad的回答中,当你写入标记[30]时,程序没有自己。程序崩溃。请参阅这个更多的信息http://stackoverflow.com/questions/1345670/stack-smashing-detected – Sush