怎么用SCANF给结构体赋值啊,我赋值后只有输出了第一个

比如:
struct stu
{
int num;
char *name;
char sex;
}*ps;
ps=(struct stu*)malloc(sizeof(struct stu));
scanf("??");

第1个回答  2011-09-06
结构体不可以用scanf,strcpy,memcpy等函数赋值。
但是一般socket编程中能用到。
方式为两边定义一样的结构体(以你的结构体为例)
memcpy(buff,ps,sizeof(ps));
send(buff);
接收端可以recv(ps)直接用结构体接收。
但是还需说明一点 这样用 结构体中不可以有指针。
第2个回答  2011-09-06
scanf("%d %s %s",&num,&name,&sex);
第3个回答  2011-09-06
ps->name = (char *)malloc(sizeof(char)*256);
scanf("%d,%s,%c",&ps->num,ps->name,&ps->sex);追问

ps->name = (char *)malloc(sizeof(char)*256);这个是开辟256个字节个ps->name么?
如果没有会怎么样?

追答

是开辟256个字符型空间。
如果那么输入没地方存放会导致出错。

本回答被提问者采纳
相似回答