结构体
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> typedef struct Peo { int age; char name[32]; }peo; void copy1(peo *obj1, peo *obj2) { *obj1 = *obj2;//可以直接整体赋值 } void copy2(peo *obj1, peo *obj2) { obj1->age = obj2->age;//也可以单个赋值 strcpy(obj1->name, obj2->name); } int main() { peo a = {1,"xiaoming"}; peo aa = a;//支持整体赋值,故后面指针解引用也可以整体赋值 printf("%d %s\n", aa.age, aa.name); peo aaa; copy2(&aaa, &a); printf("%d %s\n", aaa.age, aaa.name); }
模拟开辟内存二级结构体指针:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct Peo { int age; char *name; }peo; peo* test(peo** obj) { *obj = (peo*)malloc(sizeof(peo)); if (*obj == NULL) return NULL; else { (*obj)->age = 10; (*obj)->name = "xiaohong"; return *obj; } } void myfree(peo* obj) { if (obj != NULL) { free(obj); obj = NULL; } } int main() { peo *p1=NULL; test(&p1); printf("%d %s\n", p1->age, p1->name); myfree(p1); }
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |