鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

memcpy

函数功能

将源内存区域的内容复制到目标内存区域。两块内存区域不允许重叠,否则会导致未定义行为。

函数定义

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

参数说明

参数名

描述

取值范围

输入/输出

dest

指向用于存储复制内容的目标内存指针。

非空指针,指向有效内存,至少有num字节可访问。

输入/输出

src

指向要复制的数据源内存指针。

非空指针,指向有效内存,至少有num字节可访问。

输入

num

被复制的字节数。

非负数,不超过实际可分配内存大小。

输入

返回值

  • 成功:返回指向目标存储区内存的指针。
  • 失败:对标开源Glibc,不返回特殊异常值。

如果源和目标内存区域有重叠,应该使用memmove,因为memcpy无法安全处理重叠内存。

示例

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello, World!";
    char destination[20];
    memcpy(destination, source, strlen(source) + 1);

    printf("Source: %s\n", source);
    printf("Destination: %s\n", destination);
    return 0;
}

运行结果:

Source: Hello, World!
Destination: Hello, World!