C语⾔:内存函数

news/2024/7/22 12:32:40/文章来源:https://blog.csdn.net/2301_80416749/article/details/139277722

1. memcpy使⽤和模拟实现(对内存块的复制,不在乎类型)

 void * memcpy ( void * destination, const void * source, size_t num );

• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。

• 这个函数在遇到 '\0' 的时候并不会停下来。

• 如果source和destination有任何的重叠,复制的结果都是未定义的。

注意:num代表字节。

memcpy函数的模拟实现:

void*:针对各种类型的传参;

assert:断言不为空指针;

count--:循环20次;

使用*char类型来解引用,一次访问一个字节; 

memcpy拷贝结束后,会返回目标空间的起始地址。

2. memmove使⽤和模拟实现

void * memmove ( void * destination, const void * source, size_t num );

• 和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。

 • 如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。

memmove的模拟实现:

3. memset函数的使⽤

void * memset ( void * ptr, int value, size_t num );

void*ptr:指向被填充内存块的指针;

int value:被设置成的内容。

memset是⽤来设置内存的,将内存中的值以字节为单位设置成想要的内容。

4. memcmp函数的使⽤(内存块的比较)

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

void *:代表什么类型都可以比较)

• ⽐较从ptr1和ptr2指针指向的位置开始,向后的num个字节(num最多比较的个数)

 • 返回值如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1053604.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LabVIEW FPGA入门】同步C系列模块

1.同步使用循环定时器VI计时循环速率的系列模块 数字模块SAR ADC 模块多路复用模块 数字通道可以在一个时钟周期内执行。模拟通道需要多个时钟周期。 同步模拟模块的每个通道有一个 ADC,采集的数据在通道之间没有明显的偏差。多路复用模块使用多路复用器通过单个 A…

[杂项]优化AMD显卡对DX9游戏(天谕)的支持

目录 关键词平台说明背景RDNA 1、2、3 架构的显卡支持游戏一、 优化方法1.1 下载 二、 举个栗子(以《天谕》为例)2.1 下载微星 afterburner 软件 查看游戏内信息(可跳过)2.2 查看D3D9 帧数2.3 关闭游戏,替换 dll 文件2…

PHP开发入门

PHP官网:PHP: Hypertext Preprocessor apache官网:https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…

电脑卸载linux安装windows后每次开机都出现grub

原因分析 这是因为电脑硬盘中还存在linux系统的引导程序,并且启动顺序还在windows之前,有时候通过bios根本找不到它的存在,以至于每次windows开机出现grub之后都要输入exit退出linux的引导之后才能使得电脑进入windows,这个有时会…

【测评】香橙派 AIpro上手初体验

AI毋庸置疑是近年来,热度最高的技术之一,作为一名工程师拥抱新技术的同时不可或缺的需要一块强悍的开发板,香橙派 AIpro除了拥有好看的皮囊之外,还拥有一个有趣且充满魅力的灵魂。作为一位长期活跃在嵌入式开发领域的工程师&#…

《当微服务遇上Ribbon:一场负载均衡的华丽舞会》

在微服务的厨房里,如何确保每一道服务都恰到好处?揭秘Spring Cloud Ribbon如何像大厨一样精心调配资源,让负载均衡变得像烹饪艺术一样简单! 文章目录 Spring Cloud Ribbon 详解1. 引言微服务架构中的负载均衡需求Spring Cloud Rib…

jmeter服务器性能监控分析工具ServerAgent教程

ServerAgent介绍:支持监控CPU,memory,磁盘,网络等,和JMeter集成,在JMeter的图形界面中,可以实时看到监控的数据,但是,它只能监控硬件资源使用情况。 不能监控应用服务 S…

LLM提示工程的技巧

1. 从简单开始(Start Simple) 避免在一开始就增加太多的复杂性。 从简单的提示开始,然后在后续提示中添加更多信息和上下文。 这样,提示就是一个迭代过程,提示在此过程中进一步发展。 从简单的开始,就有足…

小红书推流机制底层逻辑

小红书推流机制底层逻辑 很多做运营的朋友问小红薯怎么玩❓ 小红书的核心逻辑流量是不是玄学❓ 今天就来说说小红书的流量算法机制🔥 ①电脑审核 ②分配初始流量 ③增加流量 ④推荐结束

[Android]联系人-删除修改

界面显示 添加按钮点击,holder.imgDelete.setlog();具体代码 public MyViewHolder onCreateViewHolder(NonNull ViewGroup parent, int viewType) {//映射布局文件,生成相应的组件View v LayoutInflater.from(parent.getContext()).inflate(R.layout.d…

Leetcode—2769. 找出最大的可达成数字【简单】

2024每日刷题(139) Leetcode—2769. 找出最大的可达成数字 实现代码 class Solution { public:int theMaximumAchievableX(int num, int t) {return num t * 2;} };运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连…

SwiftUI中EnvironmentObject的使用(多界面共享数据)

SwiftUI的EnvironmentObject是一个强大的工具,它允许你在多个视图之间共享数据(使用一个可观察对象)。当你有一个复杂的视图层次结构,并且需要在没有直接连接的视图之间共享相同的可观察对象时,它特别有用。 我们之前传递数据主要是通过init…

方正畅享全媒体新闻采编系统 binary.do SQL注入漏洞复现

0x01 产品简介 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、发…

Kubernetes核心组件Ingress详解

1.1 Ingress介绍 Kubernetes 集群中,服务(Service)是一种抽象,它定义了一种访问 Pod 的方式,无论这些 Pod 如何变化,服务都保持不变。服务可以被映射到一个静态的 IP 地址(ClusterIP&#xff09…

分类内按规则拆分一行变多行

Excel的A列是分类列,B列是由">"连接起来的多个字符串,可以看成是合并后的明细: AB1IDRule: Condition2470210642217Test3470251569449Doors & Hardware > Door Jambs> 119mm4470251602217Bathroom > Stone Tops &…

python爬虫之pandas库——数据清洗

安装pandas库 pip install pandas pandas库操作文件 已知在本地桌面有一名为Python开发岗位的csv文件(如果是excel文件可以做简单修改即可,道理是通用的) 打开文件: 打开文件并查看文件内容 from pandas import DataFrame import pandas as pd data_c…

使用ssh连接ubuntu

一、下载连接工具 常见的连接工具右fianlshell、xshell等等。在本文章中使用的finalshell,工具可以去官网上下载,官网下载。 二、Ubuntu中配置shh 1、使用下面指令更新软件包(常用于下载安装或更新软件时使用,更新到最新的安装…

音视频开发9 FFmpeg 解复用框架说明,重要API说明

一,播放器框架 二 常用音视频术语 容器/文件(Conainer/File): 即特定格式的多媒体文件, 比如mp4、flv、mkv等。 媒体流(Stream): 表示时间轴上的一段连续数据&#xff0…

【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档】

目录 摘 要 第1章 绪论 1.1背景及意义 1.2 国内外研究概况 1.3 研究的内容 第2章 相关技术 2.1 Java简介 2.2 SSM三大框架 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 第3章 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性:技术背景 …

讯方·智汇云校助力多所高校斩获华为ICT大赛2023-2024全球总决赛佳绩

2024年5月26日,华为ICT大赛2023-2024全球总决赛闭幕式暨颁奖典礼在深圳举行。讯方技术14所合作院校的18支队伍在此次大赛中荣获系列大奖。 本届大赛为华为历届最大规模的线下比赛,共吸引了全球80多个国家和地区、2000多所院校、17万余名学生报名参赛&am…