【发布时间】:2016-04-22 11:21:44
【问题描述】:
有多少学生:2(效果很好) 有多少学生:4(它给出错误“在您的程序中引发了访问冲突(分段错误)。”
为什么它会发生在我身上,我已经花了 4 个小时但无法弄清楚。
#include <stdio.h>
struct student
{
int rollno;
char name[20];
};
int main()
{
int n,i,j;
struct student detail[n];
printf("how many students: ");
scanf("%d",&n);
fflush(stdin);
for(i=0; i<n; i++)
{
printf("enter student no.%d\n",(i));
printf("Name: ");
gets(detail[i].name);
printf("Roll No: ");
scanf("%d",&detail[i].rollno);
fflush(stdin);
}
for(i=0; i<n; i++)
{
printf("Student no. %d Detail\n",(i+1));
printf("Name:\t\t%s \nRoll No: \t%d\n",detail[i].name,detail[i].rollno);
}
getch();
}
【问题讨论】:
-
fflush(stdin);是 UB -
调试器.......................
-
@MartinJames,在这种情况下不需要调试,打开警告就足够了:P