Loading... ![](https://blog.fivk.cn/usr/uploads/2021/02/3054773439.jpg) ```C #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct { int num; char* name; }DATA; int main(int argc, char* argv[]) { DATA data1, data2; data1.num = 100; data1.name = (char*)calloc(1, 12); strcpy(data1.name, "my data"); data2.num = data1.num; //为结构体变量 申请 独立空间 data2.name = (cahr*)calloc(1, 12); strcpy(data2.name, data1.name); printf("data1:num = %d, name = %s\n", data1.num, data1.name); printf("data2:num = %d, name = %s\n", data2.num, data2.name); if (data1.name != NULL) { free(data1.name); data1.name = NULL; } if (data2.name != NULL) { free(data2.name); data2.name = NULL; } return 0; } ``` <div class="tip inlineBlock success"> 深拷贝:说人话就是我们为我们的指针成员开辟独立的空间。 </div> * 浅拷贝:不同的结构体变量中的指针指向同一块堆区空间 * 深拷贝:不同的结构体变量中的指针指向独立的堆区空间 * 前提:指针变量作为结构体的成员 最后修改:2021 年 02 月 21 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏