C语言程序运行崩溃

这个函数中有什么错误吗,我每次程序运行到这个函数就奔溃报错
//修改指定学生的成绩
void corriger(STU stu[],int n,int m) //n为学生人数,m为科目数
{
long i;
int j,k;
printf("请输入要修改的学生的学号:");
scanf("%ld",&i);
for(j=0;j<n;j++)
{
if(i==stu[j].id)
{
printf("该学生学号:%ld 姓名:%s",stu[j],stu[j].name);
for(k=0;k<m;k++)
{
printf("科目%d成绩为:%c\n",k+1,stu[j].score[k]);
printf("修改为:");
scanf("%f",&stu[j].score[k]);
}
}
}
}
咳...才发现手残打漏了点东西....打扰了告辞告辞
还有....神他妈删除问题要50财富值

这种情况叫做 runtime error (运行时错误)。

在 Windows 7 上这样提示:

在 Windows XP 上这样提示:

runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3]; a[10000000]=10;

③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;

④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]

温馨提示:答案为网友推荐,仅供参考
相似回答