0

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

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

4

3 回答 3

2

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

回答您的具体问题:

memcpy(buffer+4, source, length);

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

memmove(buffer+4, source, length);
于 2013-09-03T11:17:45.153 回答
1

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

memcpy(buffer + 4, source, numberOfBytesToCopy);

这与 memcpy 无关。这只是简单的指针算术。

于 2013-09-03T11:15:24.573 回答
0

memcpy当然:

void *memcpy(void *dest, const void *src, size_t n);
于 2013-09-03T12:09:38.523 回答