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

第16讲:C语⾔内存函数

目录

  1. memcpy使⽤
  2. memmove使⽤
  3. memset函数的使⽤
  4. memcmp函数的使⽤

1.memcpy

(1)功能:

  • memcpy 是完成内存块拷⻉的,不关注内存中存放的数据是啥。
  • 函数 memcpy 从 source 的位置开始向后复制 num 个字节的数据到 destination 指向的内存位置。
  • 如果 source 和 destination 有任何的重叠,复制的结果都是未定义的。内存重叠的情况使⽤ memmove 就⾏。

内存重叠的情况:

memcpy(arr+2,arr,20);
  • memcpy 的使⽤需要包含 <string.h> 。

(2)参数:

  • destination :指针,指向⽬标空间,拷⻉的数据存放在这⾥。
  • source :指针,指向源空间,要拷⻉的数据从这⾥来。
  • num :要拷⻉的数据占据的字节数。

(3)返回值:
拷⻉完成后,返回⽬标空间的起始地址。

2.memmove

(1)功能:

  • memmove函数也是完成内存块拷⻉的。
  • 和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的(也可以处理不重叠的)。
  • memmove的使⽤需要包含 <string.h> 。

(2)参数:
同 memcpy。

(3)返回值:
拷⻉完成后,返回⽬标空间的起始地址。

3.memset

(1)功能:

  • memset 函数是⽤来设置内存块的内容的,将内存中指定⻓度的空间设置为特定的内容。
  • memset 的使⽤需要包含 <string.h> 。

(2)参数:

  • ptr :指针,指向要设置的内存空间,也就是存放了要设置的内存空间的起始地址。
  • value :要设置的值,函数将会把 value 值转换成 unsigned char 的数据进⾏设置的。也就是以字节为单位来设置内存块的。
  • num :要设置的内存⻓度,单位是字节。

(3)返回值:
返回的是要设置的内存空间的起始地址。

(4)总结:

当有⼀块内存空间需要设置内容的时候,就可以使⽤memset函数,值得注意的是memset函数对内存
单元的设置是以字节为单位的。

4.memcmp

(1)功能:
⽐较指定的两块内存块的内容,⽐较从ptr1和ptr2指针指向的位置开始,向后的num个字节。

注:memcmp 的使⽤需要包含 <string.h> 。

(2)参数:

  • ptr1 :指针,指向⼀块待⽐较的内存块。
  • ptr2 :指针,指向另外⼀块待⽐较的内存块。
  • num :指定的⽐较⻓度,单位是字节。

(3)返回值:

  • ptr1 指向的内存空间的数据大于 ptr2 指向的内存空间的数据,返回的值大于 0。
  • 等于 0 和小于 0 同理。
http://www.jsqmd.com/news/625898/

相关文章:

  • Matlab与Pixel Script Temple联姻:科学可视化与艺术化呈现
  • 告别VNC卡顿!用NoMachine远程桌面连接树莓派5的保姆级教程(含ARM架构选择避坑)
  • 宿州人不骗宿州人!眼科检查实用指南 - 品牌测评鉴赏家
  • 光伏逆变器低电压穿越仿真模型:基于Boost加NPC拓扑结构的Simulink模型
  • CMMI认证避坑指南:中小企业如何用最低成本拿下3级认证(附实战案例)
  • 2026最权威的六大AI科研工具实测分析
  • 大模型之Linux服务器部署大模型筛
  • 拆穿名词诈骗!用大白话理解晦涩难懂的AI概念蕉
  • 国际物联网卡哪家好?核心科普与主流服务商对比
  • 粉紫系超人气月兔铃仙账
  • FastUtil:为原始类型提升性能的集合框架
  • MATLAB/Simulink搭建全桥LLC仿真:从参数计算到波形调试的保姆级避坑指南
  • 从原理到实践:详解双目散斑结构光的生成与优化
  • 技能配置指南:从WorkBuddy到多平台技能配置实操手册
  • 三菱FX3U与上位机通信实战:手把手教你用FX-232-BD实现数据读写(附C#代码)
  • 2026最权威的十大AI辅助论文方案解析与推荐
  • 从LangChain到LocChain:重构AI原生研发流水线的6个关键插件(含开源LocoKit v2.1 Beta版限时开放)
  • AI原生软件技术选型到底怎么选?:一张动态决策树图谱,覆盖LLM接入、向量基建、Agent编排与合规审计4大生死关
  • 自用力扣刷题总结经验
  • YOLO部署全过程
  • 基于STM32的智能小车电磁循迹系统优化与性能提升
  • YOLO-Master 与 YOLO 开始吭
  • 【LeetCode刷题日记】:从 LeetCode 经典题看哈希表的场景化应用---数组、HashSet、HashMap 选型与算法实战
  • 力扣热门100题之岛屿的数量(DFS/BFS经典题)
  • 大模型到底是啥?运维人分钟搞懂(不用数学)侗
  • 数据摄取构建模块简介(预览版)(一)录
  • 告别Arduino IDE!在PlatformIO上玩转ESP32的SPIFFS文件系统(附完整代码)
  • 一季度收官,AI在交通运输行业表现如何?
  • 技术选型评估框架需求技术与团队匹配
  • 从控制理论到ADS仿真:深入浅出理解奈奎斯特判据,让你的放大器不再自激