我对 C 编程很陌生,但想知道是否有一个函数允许您将 char 数组复制到另一个从特定索引开始的 char 数组中,而不是使用 for 循环?
例如,我想将 的全部内容复制source
到buffer
使用元素 4buffer
作为起点。 source
将是二进制数据。可以memcpy
这样做吗?
是的,memcpy
旨在复制数据。源和目标可以是内存中的任意位置(只要是允许读/写的内存)。
回答您的具体问题:
memcpy(buffer+4, source, length);
如果源区域和目标区域可能重叠,请memmove
改用。
memmove(buffer+4, source, length);
是的,memcpy 可以做到这一点。试试看嘛
memcpy(buffer + 4, source, numberOfBytesToCopy);
这与 memcpy 无关。这只是简单的指针算术。
memcpy
当然:
void *memcpy(void *dest, const void *src, size_t n);