结构体赋初值有关问题
结构体赋初值问题
#include<stdio.h>
struct student
{
char *name;
int score;
}stu[5];
int main(void)
{
int i;
for(i=0;i<5;i++)
scanf("%s %d",stu[i].name,&stu[i].score);
for(i=0;i<5;i++)
printf("%s\t%d\n",stu[i].name,stu[i].score);
return 0;
}
为什么为stu[5]赋初值后,程序停止工作。
------解决方案--------------------
因为你没有为指针分配地址。
------解决方案--------------------
char *name没有分配空间,要么给他分配空间,要么改成数组比如char name[16];
#include<stdio.h>
struct student
{
char *name;
int score;
}stu[5];
int main(void)
{
int i;
for(i=0;i<5;i++)
scanf("%s %d",stu[i].name,&stu[i].score);
for(i=0;i<5;i++)
printf("%s\t%d\n",stu[i].name,stu[i].score);
return 0;
}
为什么为stu[5]赋初值后,程序停止工作。
------解决方案--------------------
因为你没有为指针分配地址。
------解决方案--------------------
char *name没有分配空间,要么给他分配空间,要么改成数组比如char name[16];