我认为复制这样数组的元素:C:无符号字符*字节数组复制元素到其他无符号字符*阵列
unsigned char *new_bytes_array = malloc(sizeof(unsigned char)*length/2);
for(int i=0, j=0; i<length; i++) {
if(i % 2 == 0) continue;
new_bytes_array[j] = old_bytes_array[i];
j++;
}
不是由参考制备拷贝,但其值,但我想确保这将是深层复制不仅仅是引用或指针的浅拷贝。我知道这可能是简单而荒谬的qustion,但我找不到类似于stack而memcpy()的所有数组,但我只想复制一些元素,例如每个第二个元素,或者复制1-3个元素和跳过第4个元素,(如果i%4 == 0跳过元素)。
您的代码,使“深层复制”原样。 –
请注意'sizeof(unsigned char)'总是1,所以这只是一个令人讨厌的写'1'的方法(在乘法的情况下是非常没有意义的)。考虑删除它。 – unwind
@unwind实际上在不同的平台上,'sizeof(unsigned char)'并不总是1.所以我认为把它移除并不是一个好主意。 – litao3rd