结构中的数组赋值

时间:2016-08-08 10:11:54

标签: c arrays structure

我从其他帖子中了解到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(即,值正确地从一个结构转移到另一个结构)。

  1. 当我们执行这样的结构分配时,是否可以保证结构中的数组被正确地“复制”到另一个结构中?

  2. 有人可以解释这种结构分配是如何发生的(即如何/转移内存)?

  3. 我知道结构中分配的内存不会被复制(而只会复制指针)。是否保证在执行结构分配时将正确复制所有其他数据(具有未分配的内存)?

0 个答案:

没有答案