请问下面一段代码问题的根本原因是什么
#include<stdio.h>
int main(void)
{
struct student
{
int num;
char *name;
char sex;
float score;
}stu1,stu2,stu3={1,"zhang",'M',90};
stu2=stu3;
printf("%d %s %c %f\n",stu2.num,stu2.name,stu2.sex,stu2.score);
printf("%d %s %c %f\n",stu3.num,stu3.name,stu3.sex,stu3.score);
printf("input stu1's num/name/sex/score:\n");
scanf("%d %s %c %f",&stu1.num,stu1.name,&stu1.sex,&stu1.score);
printf("%d %s %c %3.1f\n",stu1.num,stu1.name,stu1.sex,stu1.score);
return 0;
}
[解决办法]
结构体中第二个好像是指针吧。
[解决办法]
那里输入有问题,stu1.name都不知道指向哪,就给它改变它指向的空间的值,这样会引起错误,改成数组或令它指向一个数组就行
[解决办法]
str1的name没指向内存
[解决办法]