人类迷惑问题(误)?浅拷贝的相关问题...为什么同样的代码运行结果不一样
之后发现是浅拷贝的相关问题,出问题的相关代码如下:
#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就是深拷贝出来的一份数据,单独修改
C++之深拷贝和浅拷贝
通过简短的代码和图片来说明C++中深拷贝和浅拷贝的区别和概念。
java深入理解浅拷贝和深拷贝
拷贝对象是java中经常会遇到的问题。java中存在两种类型,基础类型和引用类型。 java的赋值都是传值的,对于基础类型来说,会拷贝具体的内容,但是对于引用对象来说,存储的这个值只是指向实际对象的地址,拷贝也只会拷贝引用地址。 因为引用对象的存在,所以经常会出现和预期不一样的情况。 本文将会深入的探讨一下在拷贝对象中会出现的浅拷贝和深拷贝的情况。 拷贝接口 java中所有的对象都是继承自java.lang.Object。Object对象中提供了一个clone方法,来供我们对java对象进行拷贝。 protected native Object clone() throws CloneNot
js中的深浅拷贝问题简析
主要给大家介绍了关于js中的深浅拷贝问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
深入浅析Python中list的复制及深拷贝与浅拷贝
主要介绍了Python中list的复制及深拷贝与浅拷贝及区别解析 ,需要的朋友可以参考下


新手乐园

