这可能是一个非常基本的问题,但不知怎的,它让我受骗...当我编写测试代码时,它似乎工作,但生产中出现问题。结构深拷贝
// 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++编译器编译的,那么这很重要吗?
没有真正在C系列与浅拷贝的任何概念++。一切都是价值,价值观只是被复制而已。 – jalf 2011-05-23 21:31:20
@Cubbi:你为什么删除你的答案?这很好! – 2011-05-23 21:33:18
@jalf:咦?绝对有一种深浅复制的概念。好的,不要用语言,而且如果你明智的话,并使用RAII;但尽管可以避免需要作出区分,但决不意味着没有。 – 2011-05-23 21:33:57