我在Cocoa / Xcode中开发并且有一个包含值的int *
数组。
当我想使用memcpy
来移动数组中的值时,它只传输0。
e.g。
memcpy(array,array+2*sizeof(int),2*sizeof(int));
结果:0,0,3,4
有没有更好的替代memcpy,或者我做错了什么?
答案 0 :(得分:7)
我认为做正题的正确方法是:
memcpy(array, array + 2, 2*sizeof(int));
那是因为在memcpy指针运算的第二个参数中,正在添加到“数组”指针的任何东西被认为是整数大小的倍数。因此,在这种情况下,“array + 2”表示“整数指针`数组'加上整数大小的两倍”。
答案 1 :(得分:0)
memcpy的联机帮助页说,这些区域不应该重叠。请尝试memmove。