请问以下4种关于struct的定义和使用有什么区别么?

请问以下代码有什么区别么,4种方法做的同样的事情。
另外请问newuser中的name是一个指针,在用的时候需要先malloc分配内存么?我在下面的例子中直接赋值了,从结果上看并没有什么问题。
C语言新手,感谢关注。
#include
#include
#include
typedefstructuser{
charname[20];
intage;
}user;
typedefstructuser2{
char*name;
intage;
}newuser;
intmain(){
//示例1
useru1;
u1.age=18;
strlcpy(u1.name,"xiaoming",sizeof(u1.name));
printf("u1:age=%d,name=%s\n",u1.age,u1.name);
//示例1-2
user*u2;
u2=(user*)malloc(sizeof(user));
u2->age=18;
strlcpy(u2->name,"xiaoming",sizeof(u2->name));
printf("u2:age=%d,name=%s\n",u2->age,u2->name);
//示例2
newuseru3;
u3.age=18;
u3.name="xiaoming";
printf("u3:age=%d,name=%s\n",u3.age,u3.name);
//示例2-2
newuser*u4;
u4=(newuser*)malloc(sizeof(newuser));
u4->age=18;
u4->name="xiaoming";
printf("u4:age=%d,name=%s\n",u4->age,u4->name);
return0;
}
茅侃侃
浏览 272回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript