什么是 memcpy 函数

memcpy 函数是 C/C++ 中的一个内存拷贝函数,用于将指定长度的数据从源地址复制到目标地址。它的函数原型如下:

void* memcpy(void* dest, const void* src, size_t n);
C++

其中,dest 是目标地址,src 是源地址,n 是要复制的字节数。该函数返回指向目标地址的指针。

用法示例

下面是一段使用 memcpy 函数的示例代码:

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

int main() {
    char src[] = "Hello, World!";
    char dest[20];
    
    // 将src中的内容复制到dest中
    memcpy(dest, src, strlen(src) + 1);
    
    printf("复制后的字符串:%s\n", dest);
    
    return 0;
}
C++

在上述代码中,我们将字符串 "Hello, World!" 复制到了一个新的数组 dest 中,并使用 printf 函数输出了复制后的字符串。需要注意的是,为了确保目标数组足够大,我们使用了 strlen(src) + 1 来作为复制的字节数。

注意事项

在使用 memcpy 函数时,需要注意以下几点:

  1. 目标地址和源地址不得重叠,否则结果将是不确定的。
  2. 要确保目标地址的空间足够大,避免溢出。
  3. 在 C++ 中,要保证目标地址和源地址的类型一致。
  4. 如果需要在动态内存分配的情况下进行拷贝,可以使用 malloc 和 free 函数。