当前位置: 首页 > 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);}}
}

代码验证:

相关文章:

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

目录 memmvoe函数的功能 学习memmove函数​编辑 模拟实现memmove函数 memmvoe函数的功能 memmvoe函数的功能类似于memcpy函数&#xff0c;都是内存拷贝&#xff0c;唯一的区别是memcpy函数不能成功拷贝原数据&#xff0c;而memmvoe函数可以 举例来说&#xff1a; [1, 2, 3…...

职场中必须明白的三个道理,不明白无出头之日,你越早知道越好

职场中有很多优秀的人才&#xff0c;他们工作能力出众&#xff0c;为人处事也非常的善良&#xff0c;但是有时候&#xff0c;这样的优点反而成了他们在职场中被欺负的原因&#xff0c;因为他们太善良&#xff0c;很容易被别人利用&#xff0c;为了自己的利益&#xff0c;有些人…...

做webserver项目的一些问题和思路总结

1.webserver是做什么的&#xff1f;这个项目最后想实现什么&#xff1f; 网络服务器&#xff0c;是一个处理HTTP请求并返回HTTP响应的程序。&#xff08;socket实现的是网络编程&#xff0c;不一定是HTTP&#xff0c;还有其他协议&#xff0c;具体协议由端口来确定&#xff09…...

大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

基于S7-200 SMART实现PID控制仿真实验

关键字&#xff1a;Matalb&#xff1b;S7-200 SMART&#xff1b;Modbus TCP&#xff1b;PID控制 系列文章目录 基于S7-200 SMART实现一键启停 顺序功能图——&#xff08;二&#xff09;设计机组延时关机程序 基于S7-200 SMART实现Modbus TCP通信 基于S7-200 SMART实现MATLAB写…...

社交及时通讯平台完整版源码,uniapp技术,可打包成app

源码简介&#xff1a; 全原生&#xff0c;从底层开始结构就完全不一样&#xff0c;mongodb的库&#xff0c;uniapp混编手端&#xff0c;二开难度要比视酷或者酷信容易很多。全开源&#xff0c;带开发文档。前端用的是uniapp技术&#xff0c;所以是多端合一&#xff0c;可以做h…...

TensorFlow和Pytorch是什么?干什么用的?

TensorFlow和Pytorch都是机器学习框架&#xff0c;允许用户自定义开发机器学习模型&#xff08;利用已经实现好的神经网络层&#xff09;。 1. 加载和预处理数据 加载数据&#xff1a;使用合适的库&#xff08;如 Pandas、Numpy 或 TensorFlow 的数据处理 API&#xff09;从文…...

采购人可否自行选择采购方式?|数智化招采系统支持多种采购方式

采购人是否有权自行确定采购方式&#xff0c;主要取决于采购项目的性质和规模&#xff0c;特别是是否达到公开招标的数额标准。 一、达到公开招标数额标准以上的项目 《中华人民共和国政府采购法实施条例》第二十三条规定&#xff1a;“采购人采购公开招标数额标准以上的货物…...

ubuntu dde 改为中文

在 Ubuntu Deepin Desktop Environment (DDE) 中&#xff0c;如果已经将系统语言设置为中文&#xff0c;但系统菜单仍然显示英文&#xff0c;可以尝试以下步骤解决&#xff1a; 检查语言设置&#xff1a;确保你的系统语言已经正确设置为中文。你可以在“系统设置”->“区域和…...

Nginx配置小细节,location和proxy_pass 斜杠/ 问题

理解nginx的配置有助于理解前后端调用的过程&#xff0c;这里是location与proxy_pass需要注意的点 location 不带斜杠 的是模糊匹配&#xff0c;例如 location /abc 可以匹配 /abc/index.html&#xff0c;也可以匹配 /abcd/index.html location 带斜杠的是固定匹配&#xff0c…...

java 解析 PDF OFD 发票 部分文字缺失

1、pdfbox https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox 到这里用最新的版本 最近碰到发票各式各样&#xff0c;千奇百怪&#xff1a;记录其中一个 解析出来是&#xff1a;缺少一个通字 发票好几处都缺少文字&#xff0c;解析出来的是 一个 圆点 原因&…...

C/C++数字与字符串互相转换

前言&#xff1a; 在C/C程序中&#xff0c;会需要把数字与字符串做出互相转换的操作&#xff0c;用于实现程序想要的效果。下面将介绍多种方法实现数字与字符串互相转换。 字符串转为数字 一、利用ASCII 我们知道每个字符都有一个ASCII码&#xff0c;利用这一点可以将字符-0…...

[Spring] Spring AOP

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

鸿蒙 webview 实现顶部 Progress进度条

1, 先看效果 2, 直接cv代码 import web_webview from ohos.web.webview;interface PerUrl {url: string,age: number } Component export struct webviews {controller: web_webview.WebviewController new web_webview.WebviewController();ports: web_webview.WebMessageP…...

Pytest-BDD实现接口自动化测试,并附全部代码

引言 在之前的文章中简单的介绍了怎么使用Pytest-BDD进行接口测试&#xff0c;可以参考《pytest-bdd 行为驱动自动化测试》。本篇文章主要介绍使用Pytest-BDD实现接口自动化测试。后面的文章会介绍生成测试报告&#xff0c;和流程性接口测试。 feature文件 首先我们先整理好…...

Sqli-labs-master靶场--布尔盲注

目录 1、布尔盲注 2、布尔盲注的流程&#xff08;以靶场less-8为例&#xff09; 2.1输入id尝试是否存在注入点 2.1.1通过以上尝试&#xff0c;联想到可能是布尔盲注 2.2猜测数据库长度 2.3获取数据库名 2.3.1python脚本获取 代码&#xff1a; 获取结果为&#xff1a; …...

【QGroundControl二次开发】十. QT添加GStreamer视频播放同时保存

上一章介绍使用QT播放GStreamer视频流 【QGroundControl二次开发】八. QT实现播放gstreamer视频。 这章介绍如何在原有基础上保存为视频,同时保存为一个个规定大小的小视频。 先展示代码: #include <QApplication> #include <QWidget> #include <QtConcurrent…...

double类型 精度丢失的问题

前言 精度丢失的问题是在其他计算机语言中也都会出现&#xff0c;float和double类型的数据在执行二进制浮点运算的时候&#xff0c;并没有提供完全精确的结果。产生误差不在于数的大小&#xff0c;而是因为数的精度。 一、double进行运算时,经常出现精度丢失 0.10.2使用计算…...

C++ 重要特性探究

shared_from_this 使用分析 场景 类的成员函数需要获取指向自身的shared_ptr的时候类成员函数传递shared_ptr给其他函数或者对象的时候&#xff0c;目的是为了管理对象生命周期使用方法 首先类必须继承 std::enable_shared_from_this<T>必须使用 shared_from_this 获取指…...

c++_游戏_狼人杀

思路主要包括以下几个部分&#xff1a; 角色分配&#xff1a;代码中通过随机数的方式给狼人、平民、预言家和法师等角色进行分配&#xff0c;保证每个角色的数量和身份的随机性。 游戏进行&#xff1a;根据狼人、平民、预言家和法师等角色的身份&#xff0c;游戏进行了夜晚和白…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...