c语言的内存函数

memcpy函数

1.调用形式void*memcpy(void*p1,void*p2,int n),表示从第二个位置复制n个字节到第一个位置,而指针类型为void的原因是他可以复制整型字符型甚至指针结构体类型的数据

2.在遇到'\0'的时候不会停下来,因为函数执行拷贝靠字节数,且拷贝对象不一定是字符串,遇到'\0'时拷贝'\0'

3.拷贝和被拷贝对象不能重叠,重叠时此函数不处理重叠部分,不执行重叠部分的值的复制(可以取数组内部的项验证一下)

4.模拟实现

#include<stdio.h>void* mymemcpy(void* p1, const void* p2,int n)
{int i = 0;for (i = 0; i < n; i++){*(char*)p1 = *(char*)p2;p1 = (char*)p1 + 1;p2 = (char*)p2 + 1;}return p1;
}
int main()
{int arr[5] = { 1,2,3,4,5 };int arr1[5];mymemcpy((void*)arr1, (const void*)arr, 20);int i = 0;for (i = 0; i < 5; i++){printf("%d", arr1[i]);}return 0;
}

5.改进实现:在后面空间小于前面空间时采用从最后一项向前拷贝

6.当地址重叠的时候使用memmove函数

memset函数

1.作用:设置内存

2.调用形式:void*memset(void* p1,int num,size_t good),一个字节一个字节地将内存空间改变为num的值,改变good个字节

memcmp函数

1.调用形式:int memcmp(const void*p1,const void*p2,size_t num),用法和strcmp相同,只不过这次比的是内存空间,size_t为字节数

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

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

相关文章

【Hive】——安装部署

1 MetaData&#xff08;元数据&#xff09; 2 MetaStore &#xff08;元数据服务&#xff09; 3 MetaStore配置方式 3.1 内嵌模式 3.2 本地模式 3.3 远程模式 4 安装前准备 <!-- 整合hive --><property><name>hadoop.proxyuser.root.hosts</name><v…

Java+Swing: 主界面组件布局 整理9

说明&#xff1a;这篇博客是在上一篇的基础上的&#xff0c;因为上一篇已经将界面的框架搭好了&#xff0c;这篇主要是将里面的组件完善。 分为三个部分&#xff0c;北边的组件、中间的组件、南边的组件 // 放置北边的组件layoutNorth(contentPane);// 放置中间的 Jtablelayou…

Tair(3):Tair入门demo

新建一个maven项目 1 导入依赖 <dependency><groupId>com.taobao.tair</groupId><artifactId>tair-client</artifactId><version>2.3.5</version></dependency><dependency><groupId>com.alibaba</groupId>…

计算日期到天数转换

根据输入的日期&#xff0c;计算是这一年的第几天。 保证年份为4位数且日期合法。 输入描述&#xff1a;输入一行&#xff0c;空格分割&#xff0c;分别是年&#xff0c;月&#xff0c;日 输出描述&#xff1a;输出是这一年的第几天 输入&#xff1a;2012 12 31 输出&#xff…

Python计时器

制作一个简单的Python计时器 在本教程中&#xff0c;我们将学习如何使用Python制作一个基础的计时器。这个计时器将能够开始计时、暂停、继续和重置时间。 设计思路 为了建立一个计时器&#xff0c;我们需要定义一个能够跟踪时间的变量&#xff0c;并且定期更新显示的时间。…

Linux权限(用户角色+文件权限属性)

Linux权限 文章目录 Linux权限一.文件权限1.快速掌握修改权限的方法&#xff08;修改文件权限属性&#xff09;2.对比权限的有无&#xff0c;以及具体的体现3.修改权限的第二套方法&#xff08;修改用户角色&#xff09;4.文件类型&#xff08;Linux下一切皆文件&#xff09; 二…

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

springboot基础(80):redis geospatial的应用

文章目录 前言redis geospatial如何从地图上获取经纬度springboot 的相关方法调用准备redis服务器引用的依赖预设位置的keyGEOADD 添加位置GEORADIUS 获取指定经纬度附件的停车场&#xff08;deprecated&#xff09;GEORADIUS 获取指定成员附件的停车场&#xff08;deprecated&…

文心一言API(高级版)使用

文心一言API高级版使用 一、百度文心一言API(高级版)二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API(高级版) 基于百度文心一言语言大模型的智能文本对话AI机器…

归并排序--分治法

代码 #include<iostream> using namespace std;void merge(int arr[], int p, int q, int r, int temp[]) {int i p;int j q 1;int k 0;while (i < q && j < r){if (arr[i] < arr[j]){temp[k] arr[i];}else{temp[k] arr[j];}}while (i < q){t…

智能优化算法应用:基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蚁狮算法4.实验参数设定5.算法结果6.参考文献7.MA…

ptmalloc:从内存虚拟化说起

前言 本文并不局限于ptmalloc的原理&#xff0c;而是从linux的内存虚拟化和系统调用原理出发&#xff0c;结合各种语言实现&#xff0c;讲明内存分配方面的trade off&#xff0c;力图事无巨细&#xff0c;追根究底。本文内容包括但不限于&#xff1a;NIO原理、0拷贝原理、内存…

Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点

文章目录 一、RDB (Redis Database)1.1 RDB 优势1.2 RDB 缺点1.3 RDB 如何工作1.4 RDB配置1.5 开启/关闭&#xff0c;RDB快照策略&#xff0c;save指令1.6 持久化硬盘文件&#xff0c;dbfilename指令1.7 持久化硬盘文件的存储地址&#xff0c;dir指令 二、AOF (Append Only Fil…

leetcode:643. 子数组最大平均数 I(滑动窗口)

一、题目 链接&#xff1a;643. 子数组最大平均数 I - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; double findMaxAverage(int* nums, int numsSize, int k) 二、思路 滑动窗口&#xff1a; 先计算数组前k个元素总和&#xff0c;作为第一个窗口&#xff0c;默…

vlog如何降低重复率

大家好&#xff0c;今天来聊聊vlog如何降低重复率&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; vlog如何降低重复率 Vlog作为一种流行的视频日志形式&#xff0c;常常被人们用于记录日常生活、分享经…

pta模拟题——7-34 刮刮彩票

“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示&#xff1a; 每次游戏玩家会拿到一张彩票&#xff0c;上面会有 9 个数字&#xff0c;分别为数字 1 到数字 9&#xff0c;数字各不重复&#xff0c;并以 33 的“九宫格”形式排布在彩票上。 在游戏开始时能看见一个位置上…

Lambda表达式规则,用法

Lambda表达式是JDK8新增的一种语法格式 1.作用 简化匿名内部类的代码写法 Lambad用法前提&#xff1a;只能简化函数式接口&#xff08;一般加有Funcationallnterface&#xff09;&#xff08;有且仅有一个抽象方法&#xff09;的匿名内部类 匿名内部类&#xff1a;(本质是对…

url转pdf或者html转pdf工具 — iText实现url转pdf

url转pdf或者html转pdf工具 — iText实现url转pdf 参考资料&#xff1a; https://kb.itextpdf.com/itext/can-i-generate-a-pdf-from-a-url-instead-of-from-a- http://www.micmiu.com/opensource/expdoc/itext-pdf-demo/ https://blog.51cto.com/u_16237557/7263784 iText&…

sensitive-word 敏感词/脏词开源工具-v.0.10.0-脏词分类标签支持

sensitive-word sensitive-word 基于 DFA 算法实现的高性能敏感词工具。 创作目的 实现一款好用敏感词工具。 基于 DFA 算法实现&#xff0c;目前敏感词库内容收录 6W&#xff08;源文件 18W&#xff0c;经过一次删减&#xff09;。 后期将进行持续优化和补充敏感词库&…

几种常用的压力测试工具

1. JMeter 官网: Apache JMeter简介: Apache JMeter 是一个开源软件&#xff0c;主要用于性能测试和压力测试。它可以用来测试静态和动态资源&#xff0c;如文件、Web服务、REST API等。下载与使用: 访问官网下载安装包。解压安装包并运行 JMeter。通过创建测试计划来设置压力…