我从其他帖子中了解到C中的数组赋值是不可能的。但是,在执行结构赋值时,嵌入在结构中的数组似乎可以正确地转移到另一个结构。
例如:
struct test {
int a[3];
}
int main {
struct test test;
struct test test2;
test.a[0] = 123;
test.a[1] = 456;
test.a[2] = 789;
test2 = test;
printf("%d %d %d\n",test2.a[0],test2.a[1],test2.a[2]);
}
在上面的代码中,打印输出将显示123,456和789(即,值正确地从一个结构转移到另一个结构)。
当我们执行这样的结构分配时,是否可以保证结构中的数组被正确地“复制”到另一个结构中?
有人可以解释这种结构分配是如何发生的(即如何/转移内存)?
我知道结构中分配的内存不会被复制(而只会复制指针)。是否保证在执行结构分配时将正确复制所有其他数据(具有未分配的内存)?