编译后得不到应该的结果
main(){
struct stu
{
int num;
char *name;
char sex;
float score;
} boy1,boy2;
boy1.num=102;
boy1.name= "Zhang ping ";
printf( "input sex and score\n ");
scanf( "%c %f ",&boy1.sex,&boy1.score);
boy2=boy1;
printf( "Number=%d\nName=%s\n ",boy2.num,boy2.name);
printf( "Sex=%c\nScore=%f\n ",boy2.sex,boy2.score);
}
编译后,怎么得不到需要的结果呢?
不管输入什么score,用TC编译后得到的都是0.000000
[解决办法]
经验证,一切OK,没出现LZ所说的情况。。。
[解决办法]
char *name;需要分配空间
[解决办法]
boy2=boy1;//不知道tc下允许这样赋值不?
换成这样试一下
memcpy(&boy2,&boy1,sizeof(boy2));
[解决办法]
input sex and score
a 123
Number=102
Name=Zhang ping
Sex=a
Score=123.000000
请按任意键继续. . .
没问题啊
[解决办法]
ls char *name;由于后面初始化了 已分配空间
[解决办法]
我用的是VS 6.0,代码没错误,正常编译
score 是字符型,一定要输入字符型
[解决办法]
在vs2005下可以正常运行啊。
不知道楼主的是什么问题。