gpt4 book ai didi

c++ - 结构深拷贝

转载 作者:可可西里 更新时间:2023-11-01 15:10:59 25 4
gpt4 key购买 nike

这可能是一个非常基本的问题,但不知何故它让我受骗了......当我编写测试代码时,它似乎工作正常,但在生产中出现了问题。

// Header file
#define length 100
typedef struct testStr_t {
int a;
char b;
char t1[length];
char t2[length];
} test;

void populateTest(test*);

// source file
test test1;
test test2;
populateTest(&test1);
test2 = test1;

test2 会是 test1 的深拷贝吗?还是这里有陷阱?使用 C 编译器还是 C++ 编译器编译代码是否重要?

最佳答案

深拷贝仅受指针阻碍,因此您的 struct 将在 C 中正确复制。除非您定义自己的 operator=,否则它也将在 C++ 中工作没有正确复制。您只需要为带有指针的类型定义 operator=,因为指针的浅拷贝将复制指针但共享数据。

关于c++ - 结构深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com