我認爲複製這樣數組的元素: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