当前位置: 首页 > news >正文

C语言 ——— 学习、使用memmove函数 并模拟实现

目录

memmvoe函数的功能

学习memmove函数​编辑

模拟实现memmove函数 


memmvoe函数的功能

memmvoe函数的功能类似于memcpy函数,都是内存拷贝,唯一的区别是memcpy函数不能成功拷贝原数据,而memmvoe函数可以

举例来说:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

将以上数据的 [1, 2, 3, 4, 5] 拷贝到 [3, 4, 5, 6, 7] 的位置

使用memcpy函数拷贝出来为:[1, 2, 1, 2, 1, 2, 1, 8, 9, 10] ,出现这一结果是因为覆盖了拷贝的值

使用memmove函数拷贝出来为:[1, 2, 1, 2, 3, 4, 5, 8, 9, 10]


学习memmove函数

memmove函数的功能类似等同于memcpy函数

C语言 ——— 学习、使用memcpy函数 并模拟实现-CSDN博客 


模拟实现memmove函数 

void* my_memmove(void* destination, const void* source, size_t num)
{// 断言assert(destination && source);// 分情况判断if (destination < source){// 从前向后拷贝while (num--){*((char*)destination) = *((char*)source);destination = (char*)destination + 1;source = (char*)source + 1;}}else{// 从后向前拷贝while (num--){*((char*)destination + num) = *((char*)source + num);}}
}

代码验证:

http://www.lryc.cn/news/418243.html

相关文章:

  • 职场中必须明白的三个道理,不明白无出头之日,你越早知道越好
  • 做webserver项目的一些问题和思路总结
  • 大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
  • 基于S7-200 SMART实现PID控制仿真实验
  • 社交及时通讯平台完整版源码,uniapp技术,可打包成app
  • TensorFlow和Pytorch是什么?干什么用的?
  • 采购人可否自行选择采购方式?|数智化招采系统支持多种采购方式
  • ubuntu dde 改为中文
  • Nginx配置小细节,location和proxy_pass 斜杠/ 问题
  • java 解析 PDF OFD 发票 部分文字缺失
  • C/C++数字与字符串互相转换
  • [Spring] Spring AOP
  • 鸿蒙 webview 实现顶部 Progress进度条
  • Pytest-BDD实现接口自动化测试,并附全部代码
  • Sqli-labs-master靶场--布尔盲注
  • 【QGroundControl二次开发】十. QT添加GStreamer视频播放同时保存
  • double类型 精度丢失的问题
  • C++ 重要特性探究
  • c++_游戏_狼人杀
  • MySQL——数据类型、索引的建立、数据的约束
  • 常见框架漏洞详解③!!
  • 大数据基础知识
  • SQL Server 的透明数据加密
  • Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl
  • 一机两用的简单介绍
  • uniapp离线打包热更新失败-AndroidStudio离线打包apk后无法下载打开-热更新失败-plus.runtime.install失败
  • 深植根基、蓬勃向上 | openKylin 2.0正式发布!
  • 【Material-UI】按钮组:尺寸与颜色详解
  • app抓包 burp配置
  • 图像与像素:利用ImageJ分析荧光显微镜图像|QuPath基础教程1|24-08-08