从目标中的特定点开始复制数组

时间:2013-09-03 11:11:37

标签: c arrays char

我对C编程很陌生,但是想知道是否有一个函数允许你将一个char数组复制到另一个从特定索引开始的char数组,而不是使用for循环?

例如,我想使用source的元素4作为起点,将buffer的全部内容复制到buffersource将是二进制数据。 memcpy可以这样做吗?

3 个答案:

答案 0 :(得分:2)

是的,memcpy旨在复制数据。源和目标可以是内存中的任意位置(只要它是允许读/写的内存)。

回答您的具体问题:

memcpy(buffer+4, source, length);

如果源和目标区域可能重叠,请改用memmove

memmove(buffer+4, source, length);

答案 1 :(得分:1)

是的,memcpy可以做到这一点。试试吧

memcpy(buffer + 4, source, numberOfBytesToCopy);

这不是特定的memcpy。它只是简单的指针arithemtic。

答案 2 :(得分:0)

memcpy当然:

void *memcpy(void *dest, const void *src, size_t n);