memcpy问题

时间:2011-09-25 16:45:46

标签: c memcpy

我在Cocoa / Xcode中开发并且有一个包含值的int *数组。 当我想使用memcpy来移动数组中的值时,它只传输0。

e.g。

  • 数组包含值1 2 3 4
  • memcpy(array,array+2*sizeof(int),2*sizeof(int));

结果:0,0,3,4

有没有更好的替代memcpy,或者我做错了什么?

2 个答案:

答案 0 :(得分:7)

我认为做正题的正确方法是:

memcpy(array, array + 2, 2*sizeof(int));

那是因为在memcpy指针运算的第二个参数中,正在添加到“数组”指针的任何东西被认为是整数大小的倍数。因此,在这种情况下,“array + 2”表示“整数指针`数组'加上整数大小的两倍”。

答案 1 :(得分:0)

memcpy的联机帮助页说,这些区域不应该重叠。请尝试memmove。