博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++浅复制和深复制
阅读量:5147 次
发布时间:2019-06-13

本文共 1205 字,大约阅读时间需要 4 分钟。

#include 
#include
#include
using namespace std;//定义结构体类型typedef struct person{ char name[10];//12 char *a_name;//4} p;//创建结构体实例p * setPersons(){ p *c = (p*)malloc(sizeof(p)); cout << "name:" << endl; cin >> c->name; cout << "a_name:" << endl; char *nmm = (char *)malloc(10); cin >> nmm; c->a_name = nmm; return c;}//释放内存void freeZoom(p* a){ //释放内部指针 if (a->a_name != NULL) { free(a->a_name); a->a_name = NULL; } if (a != NULL) { free(a); a = NULL;//这句是废话 }}void main(){ //结构体内部有指针的话,要重新操作内部指针的内容,不然复制的指针会内存共享,多次释放会发生错误。 //cout << sizeof(p) << endl;//16 p* p1 = setPersons(); p* p2 = (p*)malloc(sizeof(p));//分配内存 //memcpy(p2, p1, sizeof(p1));//浅复制 *p2 = *p1;//赋值操作浅复制 cout << "a_name:" << endl; char *nmm = (char *)malloc(10);//分配内存深复制 cin >> nmm; p2->a_name = nmm; //打印 cout << p1->name << endl; cout << p1->a_name << endl; cout << p2->name << endl; cout << p2->a_name << endl; //释放内存 freeZoom(p1); p1 = NULL; freeZoom(p2); p2 = NULL; system("pause");}

 

转载于:https://www.cnblogs.com/godehi/p/8461981.html

你可能感兴趣的文章
解决IE6、IE8 自适应高度
查看>>
去哪网实习总结:递归构建“流程运行顺序”的XML文件(JavaWeb)
查看>>
机器学习笔记十三:Ensemble思想(上)
查看>>
Unity3D中组件事件函数的运行顺序
查看>>
启动tomcat时出现乱码——淇℃伅(转)
查看>>
9.1 正睿提高2
查看>>
HDU.1693.Eat the Trees(插头DP)
查看>>
Java基本语法——(用于日后复习)
查看>>
C# Socket
查看>>
Java的abstract抽象
查看>>
babel编译器相关知识
查看>>
RecyclerView实现点击回复效果
查看>>
windows7安装教程(vmware)
查看>>
Windows Server 2003添加防火墙策略教程
查看>>
weblogic CVE-2017-10271修复教程
查看>>
济南清北学堂游记 Day 3.
查看>>
Qt布局
查看>>
hadoop 文件合并
查看>>
Leetcode: Jump Game
查看>>
补漏-1
查看>>