你是真的“C”——实用memory类库函数的详细实现和使用

这篇具有很好参考价值的文章主要介绍了你是真的“C”——实用memory类库函数的详细实现和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


c语言memmem自己实现,你是真的“C”,c语言,c++,算法

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

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

前言🙌

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

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

memcpy大概样子: 😊
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

  • 我们可以看到,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;
}


程序运行结果展示:

c语言memmem自己实现,你是真的“C”,c语言,c++,算法

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

memmove大概长这样的:
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

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

c语言memmem自己实现,你是真的“C”,c语言,c++,算法

c语言memmem自己实现,你是真的“C”,c语言,c++,算法

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


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;
}

程序运行结果展示:
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

三、memcmp库函数的使用

memcmp库函数,是用来比较内存内存中指定范围内的内存数据大小的库函数。
memcmp大概长这个样子:
c语言memmem自己实现,你是真的“C”,c语言,c++,算法
memcmp 的返回值设置和strcmp的返回值设置是一样的。
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

memcmp 的使用示范:

c语言memmem自己实现,你是真的“C”,c语言,c++,算法
c语言memmem自己实现,你是真的“C”,c语言,c++,算法
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

四、memset 库函数的使用

memset 叫做内存数据设置函数,你可以使用它设置内存中的数据。
memset 大概长这样子:
c语言memmem自己实现,你是真的“C”,c语言,c++,算法

memset函数的使用示范:

c语言memmem自己实现,你是真的“C”,c语言,c++,算法

总结撒花💞

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

到了这里,关于你是真的“C”——实用memory类库函数的详细实现和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你是真的“C”——求两个正数最小公倍数的3种境界~

        博客昵称:博客小梦😊 最喜欢的座右铭:全神贯注的上吧!!! 作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文

    2024年01月17日
    浏览(41)
  • 你真的知道怎么使用vs吗?把把手教你实用调试小技巧

    谈到bug,我们知道bug的中文意思是虫子,飞蛾的意思。至于为什么bug一词会用到计算机领域的话得追溯到第一台计算机的诞生。 上面个你看到的就是世界上第一个bug的诞生。它的来源也是非常的有意思,当时世界上的第一台计算机出了故障不能正常的工作,于是工作人员就进

    2024年02月05日
    浏览(44)
  • 一款实用的.NET Core加密解密工具类库

    在我们日常开发工作中,为了数据安全问题对数据加密、解密是必不可少的。加密方式有很多种如常见的AES,RSA,MD5,SAH1,SAH256,DES等,这时候假如我们有一个封装的对应加密解密工具类可以直接调用,那这样可以节省不少的开发时间。今天推荐一款实用的.NET Core加密解密工

    2024年01月23日
    浏览(134)
  • 齐全且实用的MySQL函数使用大全

    目录 一、MySQL函数介绍 二、MySQL函数分类 (一)单行函数 ①字符串函数 ②数学函数 ③日期函数 ④流程控制函数 ⑤系统信息函数 ⑥其他函数 (二)聚合函数 三、函数使用示例 (一)字符函数 ①length(str)函数 ②concat(str1,str2,...)函数 ③upper(str)、lower(str)函数 ④substr(str,star

    2024年02月04日
    浏览(34)
  • Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)

    ADF检验全称为Augmented Dickey-Fuller test。通常在使用时间序列模型(如ARMA,ARIMA)的时候用于检验时间序列数据的平稳性。他主要通过检验数据是否有单位根判断序列是否平稳。 输入参数: y:进行检验的时间序列 输出参数: h:检验结果 h = 0,说明序列不平稳; h = 1,说明序列

    2023年04月24日
    浏览(54)
  • Canoe CAPL语言实现TCP连接与通信流程(TCP相关API函数详细使用)

    本文主要讲解CAPL语言里是如何实现TCP连接通信的,所以在本文开始前需要一些前期准备。 1、 首先是需要了解TCP的报文格式,连接三次握手,断开连接四次挥手的相关知识,推荐以下两位博主文章。 深入浅出TCP三次握手 (多图详解) 两张动图-彻底明白TCP的三次握手与四次

    2024年02月07日
    浏览(238)
  • Javaweb之数据库连接池以及lombok类库的详细解析

    在前面我们所讲解的mybatis中,使用了数据库连接池技术,避免频繁的创建连接、销毁连接而带来的资源浪费。 下面我们就具体的了解下数据库连接池。 3.1 介绍 没有使用数据库连接池: 客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要

    2024年02月03日
    浏览(75)
  • LangChain入门(九)-使用Memory实现一个带记忆的对话机器人

    目录 一、说明 二、案例 一、说明 在第五章中我们使用的是通过自定义一个列表来存储对话的方式来保存历史的。 当然,你也可以使用自带的 memory 对象来实现这一点。 二、案例 结尾、扫一扫下方微信名片即可+博主徽信哦  ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓  ↓↓

    2024年02月16日
    浏览(39)
  • 真的不能再详细了,2W字保姆级带你一步步用Pytorch搭建卷积神经网络实现MNIST手写数字识别

    目录 一、引言(环境)  二、正文 1. 代码基本情况介绍 2. MNIST数据集介绍         3. 代码输出结果介绍 数据集取样: 训练信息输出: 前三次训练成果以及预测: 八次训练的结果:  4. 代码拆解讲解 基本的参数设定 MNIST数据集下载、保存与加载 神经网络模型 训练前的准

    2023年04月20日
    浏览(38)
  • AI论文技巧 │使用ChatGPT快速阅读文献--详细流程+实用指令【建议收藏】

    论文的长征路还没开始走,在最开始研究地图的时候,已经如看天书,那接下来的路很难攻克! 有什么好办法呢? 咱们可以利用ChatGPT的强大能力。只要输入文献,它就秒解文献里的关键信息,让我们迅速搞清楚 文献的主题、目的、手法和结果 ,别再费劲啃文了。 ◎ 找到关

    2024年02月21日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包