我对C编程很陌生,但是想知道是否有一个函数允许你将一个char数组复制到另一个从特定索引开始的char数组,而不是使用for循环?
例如,我想使用source
的元素4作为起点,将buffer
的全部内容复制到buffer
。 source
将是二进制数据。 memcpy
可以这样做吗?
答案 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);