【发布时间】:2014-01-14 18:02:33
【问题描述】:
#include <stdio.h>
pac()
{
int i,j,k,size;
char ns[size];
int nss[size];
printf("ENTER THE NUMBER OF STUDENTS: ");
scanf("%d",size);
for(i=0;i<size;i++)
{
printf("ENTER THE NAME OF STUDENT: ");
scanf("%c",ns[i]);
}
for(j=0;j<size;j++)
{
printf("ENTER THE MARKS OF THE STUDENT: ");
scanf("%d",nss[j]);
}
for(k=0;k<size;k++)
{
printf("%c",ns[i]);
}
}
main()
{
pac();
}
我知道错误太小,但我是 C 新手,所以请告诉我错误。 在第一次输入学生人数后,此代码中存在分段错误。
【问题讨论】:
-
size未初始化,然后您使用它来设置数组大小,这是未定义的行为。 -
更改
size的值不会神奇地调整数组的大小。您可能需要为此进行动态分配 (malloc)。 -
沙菲克,这应该是一个答案,而不是评论。
-
@paxdiablo 你是对的。
标签: c segmentation-fault