`memcpy`是一个常用的C语言库函数,用于将一块内存区域的内容复制到另一块内存区域。它的原型在`string.h`头文件中定义。函数原型如下:
```c
void *memcpy(void *dest, const void *src, size_t n);
```
参数说明:
* `dest`: 目标内存区域的指针,即要将数据复制到的位置。
* `src`: 源内存区域的指针,即要从中复制数据的源头。
* `n`: 要复制的字节数。
返回值:该函数返回指向目标内存区域`dest`的指针。
以下是使用示例:
假设我们有两个字符数组`src`和`dest`,我们希望将`src`数组的内容复制到`dest`数组中。我们可以使用以下代码实现:
```c
#include
#include
int main() {
char src[] = "Hello World"; // 源字符串数组
char dest[20]; // 目标字符串数组,有足够的空间来存储源数组的内容
int length = strlen(src); // 获取源数组的长度(字节数)
memcpy(dest, src, length); // 将源数组的内容复制到目标数组
printf("目标数组内容为:%s\n", dest); // 输出目标数组的内容
return 0;
}
```
注意:在使用`memcpy`时,必须确保目标内存区域有足够的空间来存储源内存区域的内容,否则可能会导致内存溢出或覆盖未初始化的内存区域中的数据。另外,当处理重叠的内存区域时(即源和目标内存区域部分重叠),应该使用`memmove`函数替代`memcpy`。