C语言 <string.h> memmove 函数

  • 描述

    C库函数void *memmove(void *str1, const void *str2, size_t n)将n个字符从str2复制到str1,但是对于重叠的内存块,memmove()比memcpy()更安全。
  • 声明

    以下是memmove函数的声明。
    
    void *memmove(void *str1, const void *str2, size_t n)
    
    参数
    • str1-这是指向要在其中复制内容的目标数组的指针,类型转换为void *类型的指针。
    • str2-这是指向要复制的数据源的指针,类型转换为void *类型的指针。
    • n-这是要复制的字节数。
  • 返回值

    此函数返回指向目标的指针,即str1。
    示例
    以下示例显示memmove函数的用法-
    
    #include <stdio.h>
    #include <string.h>
    
    int main () {
       char dest[] = "oldstring";
       const char src[]  = "newstring";
    
       printf("Before memmove dest = %s, src = %s\n", dest, src);
       memmove(dest, src, 9);
       printf("After memmove dest = %s, src = %s\n", dest, src);
    
       return(0);
    }
    
    尝试一下
    让我们编译并运行上面的程序,它将产生以下结果。
    
    Before memmove dest = oldstring, src = newstring
    After memmove dest = newstring, src = newstring