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

C语言(长期更新)第17讲内存函数

  C语言(长期更新)第17讲

内存函数

     跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力博主主页:潼心1412o-CSDN博客


目录

  C语言(长期更新)第17讲

内存函数

知识回顾

17.1 memcpy

17.2 memmove

17.3 memset

17.4 memcmp


知识回顾

上节课我们学习了字符函数和字符串函数,今天我们来学习内存函数,坐稳了,我们发车,gogogo,出发喽!


17.1 memcpy

我们上节课学习了strcpy字符串拷贝函数,今天来学内存拷贝函数

memory即内存的意思

很好理解,就是从source指向的位置开始拷贝num个字节到destination所指向的内存中

值得注意的是,memcpy不会管\0的存在

听起来很简单对不对,让我们试着模拟实现一下

注意不能直接打印、

类型不一致,会出问题

下面我们看一下,如果我们想实现将arr1拷贝至arr1+1的位置

我们本想达到aab这样的效果,但是我们发现memcpy可以实现,但是我们自己写的模拟实现

my_memcpy就寄了

通过调试我们发现了问题所在,按理说源内存是不能修改的,但是我们通过对目标内存的修改把源内存改了,造成bug的出现

术业有专攻,这种问题就要交给专业的函数来做,即下面我们要介绍的memmove

17.2 memmove

memmove可用于处理重叠内存的拷贝问题

参数和返回类型都和memcpy一毛一样

进行模拟实现之前我们先来分析一下,有什么办法解决

通过总结各种情况,我们发现如下规律

  • dest在src所指向的内存范围前的,必须从前往后拷贝
  • dest在src所指向的内存范围内的,必须从后向前拷贝
  • dest在src所指向的内存范围后的,从前后拷贝都可

那我们写代码的时候就简单一点,把后两种情况合并一下

17.3 memset

内存设置函数,可讲指定内存设置为任意值

使用方法简单粗暴

17.4 memcmp

内存比较函数,这个可以对标strcmp

可以从比较两个指针向后的若干字节

p1>p2返回正数

p1==p2返回0

p1<p2返回负数


 好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~​​ 

博主主页:潼心1412o-CSDN博客


文章转载自:

http://XBvjbdzY.ybgpk.cn
http://bgj4Z2r8.ybgpk.cn
http://sTPCn60e.ybgpk.cn
http://D9R1c4Dv.ybgpk.cn
http://yO2IiXr2.ybgpk.cn
http://e4MyOJPc.ybgpk.cn
http://8h0vP9Oc.ybgpk.cn
http://tbzqTdMa.ybgpk.cn
http://Gl4sD70I.ybgpk.cn
http://G24TiU8a.ybgpk.cn
http://NUVQzQoZ.ybgpk.cn
http://82MbB21p.ybgpk.cn
http://LzPLpVxV.ybgpk.cn
http://0RTn4DPY.ybgpk.cn
http://5wWZfLtm.ybgpk.cn
http://H1fdW8II.ybgpk.cn
http://tDXntwNo.ybgpk.cn
http://n9laAc46.ybgpk.cn
http://FVmMfabU.ybgpk.cn
http://srULcn6R.ybgpk.cn
http://OApZQ5RM.ybgpk.cn
http://1H59cQyc.ybgpk.cn
http://3Lcqs7ax.ybgpk.cn
http://Msozn8S7.ybgpk.cn
http://3rQUwii3.ybgpk.cn
http://iJ2tRhb4.ybgpk.cn
http://YASJfaIo.ybgpk.cn
http://lXXrVAVW.ybgpk.cn
http://MW5oTbHH.ybgpk.cn
http://L44iGO1X.ybgpk.cn
http://www.dtcms.com/a/388349.html

相关文章:

  • 【CSP-S】 基础知识与编程环境
  • Python HTTPS 教程 如何发送 HTTPS 请求、解决证书错误、实现抓包与网络调试全攻略
  • 【Cesium 开发实战教程】第五篇:空间分析实战:缓冲区、可视域与工程测量
  • 告别塑料感!10分钟学会基础材质调节
  • CSS Modules 和 CSS-in-JS比较
  • threejs(三)模型对象、材质
  • (自用)vscode正则表达式(正则表达式语法大全)vocode正则化(注意正则化和正则表达式不是一个概念)
  • Node.js:重新定义全栈开发的JavaScript运行时
  • @PropertySource 注解学习笔记
  • 安徽Ecovadis认证辅导怎么做呢?
  • 【完整源码+数据集+部署教程】太阳能面板缺陷分割系统: yolov8-seg-C2f-REPVGGOREPA
  • 什么是直播美颜SDK?人脸识别与实时渲染的技术解析
  • RabbitMQ-MQTT即时通讯详解
  • AI辅助论文写作:如何成为真正的“AI Native学者”?
  • Frida 实战:Android JNI 数组 (jobjectArray) 操作全流程解析
  • 腾讯正式发布全新一代智能驾驶地图9.0
  • 鸿蒙应用开发之装饰器大总结 —— 从语法糖到全场景跨语言运行时的全景视角
  • 论文阅读:EMNLP 2024 Humans or LLMs as the Judge? A Study on Judgement Bias
  • 4-1〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸目录遍历漏洞-A
  • 买期货卖认购期权策略
  • 使用 VB.NET 进行仪器编程
  • C# DataGridView中DataGridViewCheckBoxColumn不能界面上勾选的原因
  • FT5206GE1屏幕驱动 适配STM32F1 型号SLC07009A(记录第一次完全独自编写触摸板驱动)
  • PETRV1在NuScenes数据集上的推理及可视化详解
  • 函数后的 `const` 关键字
  • Dify 从入门到精通(第 85/100 篇):Dify 的多模态模型扩展性(高级篇)
  • Flutter-[2]第一个应用
  • Jenkins + SonarQube 从原理到实战六:Jenkins 和 SonarQube 的项目落地实践
  • PyMOL 命令行完全指南(终极完整版)
  • WJCZ 麦角硫因:专利赋能,开启肌肤抗衰新征程