C 语言库函数 - memmove()

返回上一级

C 语言标准库 <string.h> 函数 void memmove(void str1, const void *str2, size_t n)str2 复制 n 个字符到 str1

但是在重叠内存块这方面,memmove() 是比 memcpy() 更安全的方法。

如果目标区域和源区域有重叠的话,memmove() 能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,复制后源区域的内容会被更改

如果目标区域与源区域没有重叠,则和 memcpy() 函数功能相同

头文件

#include <string.h>

函数原型

下面是 memmove() 函数的原型

void *memmove(void *str1, const void *str2, size_t n)

参数

  • str1:指向用于存储复制内容的目标数组,类型强制转换为 void* 指针
  • str2:指向要复制的数据源,类型强制转换为 void* 指针
  • n: 要被复制的字节数

返回值

该函数返回一个指向目标存储区 str1 的指针

范例

下面的范例演示了 memmove() 函数的用法

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

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

int main ()
{
   char dest[] = "https://www.twle.cn";

   const char src[]  = "https://twle.cn";

   printf("Before memmove dest = %s, src = %s\n", dest, src);
   memmove(dest, src, 12);
   printf("After memmove dest = %s, src = %s\n", dest, src);

   return(0);
}

编译运行以上范例,输出结果如下

$ gcc main.c && ./a.out
Before memmove dest = https://www.twle.cn, src = https://twle.cn
After memmove dest = https://twletwle.cn, src = https://twle.cn

返回上一级

C 语言标准库

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.