深拷贝和浅拷贝
来源:互联网 发布:java8 javascript 编辑:程序博客网 时间:2024/05/20 21:43
1.编译器默认浅拷贝
2.深拷贝需要再次分配内存
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>typedef struct Teacher{char name[64];int age ;char *pname2;}Teacher;//编译器的=号操作,只会把指针变量的值,从from copy 到 to,但 //不会 把指针变量 所指 的 内存空间 给copy过去..//浅copy//结构体中套一个 1级指针 或 二级指针 //如果 想执行深copy,再显示的分配内存void copyTeacher(Teacher *to, Teacher *from){*to = *from;to->pname2 = (char *)malloc(100);strcpy(to->pname2, from->pname2);//memcpy(to, from , sizeof(Teacher));}void main51(){Teacher t1;Teacher t2;strcpy(t1.name, "name1");t1.pname2 = (char *)malloc(100);strcpy(t1.pname2, "ssss");//t1 copy t2copyTeacher(&t2, &t1);if (t1.pname2 != NULL){free(t1.pname2);t1.pname2 = NULL;}if (t2.pname2 != NULL){free(t2.pname2);t2.pname2 = NULL;}printf("hello...\n");system("pause");return ;}
3.内存模型
0 0
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝 和 浅拷贝
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- 深拷贝和浅拷贝
- 深拷贝和浅拷贝
- mysqld与mysqld_safe的区别
- 逻辑学和计算理论相关概念
- [Android Studio 权威教程]Mac下安装Android Studio
- fzu 1150 Farmer Bill's Problem
- [二分] 最大化平均值
- 深拷贝和浅拷贝
- Implementing Controllers
- nyoj 24 素数距离问题
- [Android Studio 权威教程]Windows下安装Android Studio
- 安卓的观察者模式
- fzu 1171 Hard to Believe, but True!
- java怎么用一行代码初始化ArrayList
- [Android Studio 权威教程]离线配置SDK,创建第一个AS项目
- [Android Studio 权威教程]配置出“NB”的Android Studio