你是真的“C”——实用memory类库函数的详细实现和使用
创始人
2025-05-30 02:04:20

你是真的“C”——各种实用memory类库函数的详细实现过程😎

  • 前言🙌
    • 一、memcpy库函数的模拟实现 😊
    • 二、memcpy库函数的模拟实现 😊
    • 三、memcmp库函数的使用
    • 四、memset 库函数的使用
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享你是真的“C”——各种实用memory类库函数的详细实现和使用。都是精华内容,可不要错过哟!!!😍😍😍

一、memcpy库函数的模拟实现 😊

memcpy大概样子: 😊
在这里插入图片描述

  • 我们可以看到,memcpy库函数的实现,用到了空类型的指针,这个设计是非常巧妙的。这个 void 就像是一个垃圾箱,你可以把任意类型的数据往里面扔,他都可以接受。

memcpy库函数模拟实现源码: 😘

void* my_memcpy(void* dest, const void* src, size_t num)
{assert(dest && src);void* ret = dest;while (num--){*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}return ret;
}int main()
{int arr1[10] = { 1,2,3,4,5,6 };int arr2[10] = { 0 };my_memcpy(arr2,arr1, 20);return 0;
}

程序运行结果展示:

在这里插入图片描述

二、memcpy库函数的模拟实现 😊

memmove大概长这样的:
在这里插入图片描述

看了之后还是有点模糊,别急。下面画图辅助大家理解一波:

在这里插入图片描述

在这里插入图片描述

memcpy库函数模拟实现源码: 😘


void* my_memmove(void* dest, const void* src, size_t num)
{assert(dest && src);void* ret = dest;if (src < dest){while (num--){*((char*)dest + num) = *((char*)src + num);}}else{while (num--){*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}}return ret;
}int main()
{int arr1[10] = { 1,2,3,4,5,6,7,8,9,10};//my_memmove(arr1 + 2,arr1, 20);return 0;
}

程序运行结果展示:
在这里插入图片描述

三、memcmp库函数的使用

memcmp库函数,是用来比较内存内存中指定范围内的内存数据大小的库函数。
memcmp大概长这个样子:
在这里插入图片描述
memcmp 的返回值设置和strcmp的返回值设置是一样的。
在这里插入图片描述

memcmp 的使用示范:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、memset 库函数的使用

memset 叫做内存数据设置函数,你可以使用它设置内存中的数据。
memset 大概长这样子:
在这里插入图片描述

memset函数的使用示范:

在这里插入图片描述

总结撒花💞

   本篇文章旨在分享实用memory类库函数的详细实现和使用。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关内容

热门资讯

【C++进阶】map的介绍和使... 文章目录map的介绍map的模板参数介绍map的容器介绍map重要容器接口的介绍及使用构造函数增删查...
HTML5新增 系列文章目录 前端系列文章——传送门 HTML系列文章——传送门 文章目录系列文章目录什么是 HT...
Spring事务管理,xml和... 目标:熟悉事务管理的核心接口,能够说出它的3个核心接口及内容 sprin...
潮汐车道可以掉头吗(潮汐车道可... 今天给各位分享潮汐车道可以掉头吗的知识,其中也会对潮汐车道可以拐弯吗进行解释,如果能碰巧解决你现在面...
叶克膜是什么(叶克膜是什么药物... 本篇文章极速百科给大家谈谈叶克膜是什么,以及叶克膜是什么药物对应的知识点,希望对各位有所帮助,不要忘...
二手雪佛兰迈锐宝2013款价格... 本篇文章极速百科给大家谈谈二手雪佛兰迈锐宝2013款价格多少,以及二手雪佛兰迈锐宝2013款价格多少...
爬山是什么意思网络用语(网络语... 本篇文章极速百科给大家谈谈爬山是什么意思网络用语,以及网络语言爬山是什么意思?对应的知识点,希望对各...
企业网盘的优势到底在哪里? 归根结底,企业网盘作为一个功能型产品,比之普通的个人网盘其优势到底在哪里...
一万的电动四轮车(一万的电动四... 今天给各位分享一万的电动四轮车的知识,其中也会对一万的电动四轮车电油两用进行解释,如果能碰巧解决你现...
阳历是什么(阳历是什么历是公历... 本篇文章极速百科给大家谈谈阳历是什么,以及阳历是什么历是公历还是农历对应的知识点,希望对各位有所帮助...
艾瑞泽5e怎么样-车主点评-真... 本篇文章极速百科给大家谈谈艾瑞泽5e怎么样-车主点评-真实评价-口碑,以及艾瑞泽5e2017款对应的...
庚寅年是哪一年(清朝庚寅年是哪... 本篇文章极速百科给大家谈谈庚寅年是哪一年,以及清朝庚寅年是哪一年对应的知识点,希望对各位有所帮助,不...
Django从0到视图开发实战 Djanogo框架特点 Django 是一个全栈web框架功能完善,要素齐全完善的文档...
依赖注入~ 依赖注入之setter注入: 依赖注入是IOC具体的一种实现方式, 这是...
2012款菲亚特菲跃怎么样(2... 今天给各位分享2012款菲亚特菲跃怎么样的知识,其中也会对2013款菲亚特菲跃进行解释,如果能碰巧解...
雪弗兰赛欧油耗怎么样,新赛欧的... 今天给各位分享雪弗兰赛欧油耗怎么样,新赛欧的真实油耗多少的知识,其中也会对雪佛兰赛欧真实油耗多少进行...
有哪些水生动物(有哪些水生动物... 本篇文章极速百科给大家谈谈有哪些水生动物,以及有哪些水生动物有特别之处对应的知识点,希望对各位有所帮...
立冬的寓意是什么(立冬有什么寓... 本篇文章极速百科给大家谈谈立冬的寓意是什么,以及立冬有什么寓意对应的知识点,希望对各位有所帮助,不要...
14 elf 文件执行的流程 前言 这里我们来探讨一下 elf 文件的执行流程  当然 这也是我很久以前 就想了解的东西了  不过...
假如用CSS来逆向推理视觉设计... 最近几个月都在忙乎自己的产品,活生生体验了一把需求-设计-前端开发集成式累成狗的节奏&...
如何计算运行时间(即计算时间复... 一般法则 for循环 一次for循环的运行时间至多是该for循环内语句(包括测试&#x...
信宜说什么话(广东信宜说什么方... 本篇文章极速百科给大家谈谈信宜说什么话,以及广东信宜说什么方言对应的知识点,希望对各位有所帮助,不要...
煮熟的螃蟹怎么保存(煮熟的螃蟹... 今天给各位分享煮熟的螃蟹怎么保存的知识,其中也会对煮熟的螃蟹怎么保存合适进行解释,如果能碰巧解决你现...
东西南北无弯路是什么字(东西北... 本篇文章极速百科给大家谈谈东西南北无弯路是什么字,以及东西北无路打一地名对应的知识点,希望对各位有所...
俄罗斯火箭(俄罗斯火箭炮射程)... 本篇文章极速百科给大家谈谈俄罗斯火箭,以及俄罗斯火箭炮射程对应的知识点,希望对各位有所帮助,不要忘了...
“国产版ChatGPT”文心一... 文章目录前言实验结果一、文学创作问题1 :《三体》的作者是哪里人?问题2:...
OWIN+ASP.NET We... 1、创建一个WebAPI项目,在Visual Studio 中选择这个 2、生成的目...
layui框架学习(15:表单...   上一篇文件介绍了Layui中表单的大致结构,本文开始学习表单中与几种输入元素相关的...
sonywh-1000xm3(... 本篇文章极速百科给大家谈谈sonywh-1000xm3,以及sonywh1000xm3蓝牙耳机怎么配...
务实派后来者居上昂科威和柯迪亚... 本篇文章极速百科给大家谈谈务实派后来者居上昂科威和柯迪亚克哪个好,以及昂科威与柯迪亚克谁好柯迪亚克图...