关于结构体深拷贝和浅拷贝的问题

yihangdaimadoubuhui 2017-12-23 01:28:56
查了百度说是前拷贝只靠了指针的地址,没有拷贝内容。但是地址不是内存地址吗?按理来说找到地址就能顺着找到内容啊。我是萌新不太懂,还望大神们指点。
...全文
355 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
陪妳看星星 2017-12-26
  • 打赏
  • 举报
回复
复习浅拷贝与深拷贝
啊哈moment 2017-12-25
  • 打赏
  • 举报
回复
受教了 fighting
真相重于对错 2017-12-25
  • 打赏
  • 举报
回复
举个例子 typedef struct A{ int* ddd; }*PA; PA sa1,sa2; 。。。。 sa1->ddd=(PA)malloc(sizeof(int)); memcpy(sa1,sa2,sizeof(struct A));这就是浅拷贝。 如果 下一步 free(sa1->ddd); sa2 的ddd也就失效了
haierpro 2017-12-25
  • 打赏
  • 举报
回复
不是找不找得到内容的问题,是想不想做拷贝,或有没有去找到内容做拷贝的问题。
heronism 2017-12-25
  • 打赏
  • 举报
回复
类(结构体)有指针成员时,深拷贝时要为被赋值的变量里的指针成员申请空间并进行值拷贝,这样两个变量都是独立的。 浅拷贝时只拷贝指针的值,如果源变量被释放了目的变量里的指针就成野指针了,当然如果你能控制源变量被释放后目的变量不会再用到也可以 可以了解下智能指针
starytx 2017-12-23
  • 打赏
  • 举报
回复
你只拿一份地址,如果对象都不存在了,你拿的地址就是野指针了。
c++面试题53个问题 1.C++的三大特性 2.C和C++的区别 3.全局变量和局部变量在内存分配上有何不同 4.static的作用 5.const解释其作用 6.指针和引用的区别 7.智能指针 8.简述深拷贝浅拷贝的区别 9.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数 10.请讲述堆和栈的区别 11.全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的 12.new、delete、malloc、free之间的关系 13. 头文件种的ifndef/define/endif 是干什么用的 14.TCP和UDP有什么区别 15.STL库用过吗?常见的STL容器有哪些?算法用过哪几个 16.同步IO和异步IO的区别 17.说下你对内存的了解 18.C++文件编译与执行的四个阶段 19.extern关键字的作用 20.#define和const的区别 21.结构体struct和共同体union(联合)的区别 22.C++中vector和list的区别 23.结构体和类的区别 24.STL中map和set的原理(关联式容器) 25.MFC的消息机制 26.消息映射 27.列举几种进程的同步机制,并比较其优缺点 28.数组和链表的区别 29.MFC主要要用到哪几个类?及其各个类的作用 30.MFC六大核心机制 31.OnDraw和OnPaint 32.win32程序的消息响应机制是如何实现的 33.MFC中的消息响应机制是如何实现的 34.WM_COMMAND命令消息处理顺序 35.MFC序列化的概念 36.PeekMessage和GetMessage的主要区别 37.WIN32创建窗口程序基本函数 38.Windows中的系统消息循环占用CPU的疑问 39.队列消息与非队列消息 40.GDI对象绘图步骤 41.设备上下文DC 42.GDI位图绘制步骤 43.当模态对话框点开后,主窗口还能响应处理消息吗 44.MFC的消息分类 45.CListCtrl 虚拟列表技术 46.虚函数是怎么实现的 47.什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法? 48.变量的声明和定义有什么区别 49.sizeof是一个操作符,strlen是库函数 50.写一个“标准”宏MIN 51.简述strcpy sprintf与mencpy的区别 52.链表与数组的区别 53.简述队列和栈的异同

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧