我找不到任何关于这个问题的提法.我有一个结构数组,我需要调整大小的数组.两个结构都已完全初始化(每个单元格的值都不是NULL)
说
typedef struct Square {
...
...
}Square;
Square s1[1024];
Square s2[2048];
Run Code Online (Sandbox Code Playgroud)
如果我使用memcpy()s1 复制到s2中,s2会怎么样?我知道它复制字节数据.将前1024个单元格与s1相同,剩余的1024个单元格是否与初始化单元格相同?还是会影响他们?
谢谢
PS这里的数组是静态分配的,但我写的只是为了方便.我让他们分配使用malloc()
如果你这样做:
memcpy(s2, s1, sizeof(s1));
Run Code Online (Sandbox Code Playgroud)
将从中复制第一个1024 Square秒,其余部分将不受影响(因此,如果它们未初始化,它们仍将是未初始化的).s2s1
请记住,如果按照您的说法分配堆,则无法使用sizeof.如果你想要做的只是增长数组,你可能会发现realloc很有用.