双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

人类迷惑问题(误)?浅拷贝的相关问题...为什么同样的代码运行结果不一样

Kidca Kidca 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天有朋友问我题的时候,出现了一个迷惑情况,就是同样的代码,在我这能跑,在ta那就会崩。
之后发现是浅拷贝的相关问题,出问题的相关代码如下:
#include <iostream>
struct Node{
int data;
struct Node *next;
};
int main() {
Node * p = new Node;
Node *q = new Node ;
q = p;
free(p);
free(q);
return 0;
}


q=p应该是浅拷贝,即q与p指向的是同一块内存。

如果free(p)再执行free(q),因为q的内存已经被free了再free按理来说应该会报错。

而在朋友的电脑上执行确实会报错,在我这里就是正常结束(无error,return 0)??

求问大佬这可能是什么原因呢?
...全文

相关推荐

前端深拷贝浅拷贝的问题

今天用变量A复制一个对象,修改变量A后,对象也变了。通过询问百度是深拷贝浅拷贝的问题 解决方法有两种 1 var b = JSON.parse(JSON.stringify(a)); b就是拷贝的结果,修改b不影响a。但是这种方法也有缺陷: 无法复制函数 原型链没了,对象就是object,所属的类没了。 2 var obj = table.cache['demo']; var arr = []; //深拷贝数据变量 layui.each(obj,function(index,item){ arr.push(item); }) //这个时候的arr就是深拷贝出来的一份数据,单独修改

weixin_38694529

C++之深拷贝和浅拷贝

通过简短的代码和图片来说明C++中深拷贝和浅拷贝的区别和概念。

qhh0205

java深入理解浅拷贝和深拷贝

拷贝对象是java中经常会遇到的问题。java中存在两种类型,基础类型和引用类型。 java的赋值都是传值的,对于基础类型来说,会拷贝具体的内容,但是对于引用对象来说,存储的这个值只是指向实际对象的地址,拷贝也只会拷贝引用地址。 因为引用对象的存在,所以经常会出现和预期不一样的情况。 本文将会深入的探讨一下在拷贝对象中会出现的浅拷贝和深拷贝的情况。 拷贝接口 java中所有的对象都是继承自java.lang.Object。Object对象中提供了一个clone方法,来供我们对java对象进行拷贝。 protected native Object clone() throws CloneNot

weixin_38737565

js中的深浅拷贝问题简析

主要给大家介绍了关于js中的深浅拷贝问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

weixin_38660624

深入浅析Python中list的复制及深拷贝与浅拷贝

主要介绍了Python中list的复制及深拷贝与浅拷贝及区别解析 ,需要的朋友可以参考下

weixin_38643269
评论 9
收藏 已收藏
分享
返回顶部
Kidca
C++ 语言 65,214 成员 250,514 内容