c语言 结构体 复制,C++ 的浅拷贝和深拷贝(结构体)

本文介绍了C/C++中结构体的浅拷贝和深拷贝问题,通过实例展示了如何处理包含指针的结构体。浅拷贝仅复制指针,导致多个对象共享同一内存,而深拷贝则为指针分配新内存,确保独立性。建议在定义包含指针的类或结构体时,自定义深拷贝构造函数以避免潜在错误。
摘要由CSDN通过智能技术生成

关于浅拷贝和深拷贝这个问题遇上的次数不多,这次遇上整理一下,先说这样一个问题,关于浅拷贝的问题,先从最简单的说起。

假设存在一个结构体:

struct Student

{

string

name;

int age;

};

​这样一个最简单的问题

然后执行:

struct

Student stu = {"liming",

18};

struct

Student stu2 = {"wanger",

20};

stu2 = stu;

cout<

"<< stu2.age

<

cout<

:"<<

stu2.name<

​这样可以看到的结果是:

age is : 18

name is :liming

说明此时的拷贝是成功的,此时的结构体可以通过“=”来直接进行赋值操作,但是接下来的问题产生了,假设存在如下的结构体:​

struct stu

{

int i;

char c;

char* p;

};

执行下面的程序:

struct

stu s1,s2;

char * str = "rabbit is

cute&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值