memcpy、memmove、memcmp、memset函数的作用与区别
一、memcpy与memmove
1、memcpy
作用:从source的位置开始向后复制num个字节的数据到destination的内存位置。
注意:
- memcpy() 函数在遇到 ’\0’ 的时候不会停下来(strcpy字符串拷贝函数在遇到’\0’的时候会停下来);
- destination和source所指向的内容不能重叠,否则得不到想要的结果。
void* memcpy(void* destination,const void* source,size_t num);
2、memmove
2、memmove
作用:从source的位置开始向后复制num个字节的数据并将其移动到destination的内存位置。
注意:和memcpy()函数的区别就是memmove()函数处理的原内存块和目标内存块是可以重叠。
void* memmove(void* destination,const void* source,size_t num);
3、memove与memcpy的区别与重叠内存问题
memmove是memcpy的升级版,memmove是更加安全的。
详见:【C语言】浅谈memcpy与memmove 的区别_DanteIoVeYou的博客-CSDN博客
二、memcmp
作用:用于比较两个内存区域的内容。
int memcmp(const void * Buf1,const void * Buf2,size_t Size);
buf1:指向第一个内存区域的指针。
buf2:指向第二个内存区域的指针。
size:要比较的字节数。
- 如果返回值 < 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str1 大于 str2。
- 如果返回值 = 0,则表示 str1 等于 str2。
三、memset
作用:内存赋值函数,用来给某一块内存空间进行赋值的;包含在<string.h>头文件中。
详解:将已开辟内存空间s的首n个字节的值设为值c。
注意:该函数是按一个字节一个字节来给数组或者是结构体赋值。
void *memset(void *s, int v, size_t n);
s 是数组名,或指向某一内在空间的指针;
v 为要填充的值;
n 为要填充的字节数;
如果是字符类型数组的话,memset可以随便用,但是对于int类型的数组,一般只用来清0或者填充-1,如果是填充其他数据就会出错。
四、参考内容
【C语言】浅谈memcpy与memmove 的区别_DanteIoVeYou的博客-CSDN博客
C语言memcpy,memmove,memcmp,memset函数_sheygshsi的博客-CSDN博客
C/C++---memset、memcpy、memcmp函数简介_c/c++ 不同数组大小的memcpy_f斗牛士的博客-CSDN博客
相关文章:
memcpy、memmove、memcmp、memset函数的作用与区别
一、memcpy与memmove 1、memcpy 作用:从source的位置开始向后复制num个字节的数据到destination的内存位置。 注意: memcpy() 函数在遇到 ’\0’ 的时候不会停下来(strcpy字符串拷贝函数在遇到’\0’的时候会停下来);destination和source…...
socket 到底是个啥
我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通信连接,socket 的表现方式由四元组(ip地址&am…...
奥威BI—数字化转型首选,以数据驱动企业发展
奥威BI系统BI方案可以迅速构建企业级大数据分析平台,可以将大量数据转化为直观、易于理解的图表和图形,推动和促进数字化转型的进程,帮助企业更好地了解自身的运营状况,及时发现问题并采取相应的措施,提高运营效率和质…...
vue中swiper使用
1.引包 说明:导入相应js引css import "Swiper" from "swiper" import "swiper/css/swiper.css"; import "swiper/js/swiper"; 2.结构 说明:必要的结构使用;直接封装成一个组件 <template>…...
webpack与vite区别
webpack和Vite作为两种常用的前端构建工具,主要有以下几点区别: 构建速度 webpack采用“打包”的方式构建,需要将所有模块打包成几个大的bundle文件,构建速度较慢。 Vite采用了“按需编译”的方式,只在浏览器请求时才编译对应模块,启动速度更快。 dev server webpack dev s…...
GLSL用于图像处理
Pipeline 硬件处理顶点和片段的Pipeline 软件的输入 顶点着色器 顶点的glsl 输入–特殊全局变量 变量 类型 指定函数 描述 gl_ Vertex vec4 glVertex 顶点的全局空间坐标 gl_Color vec4 glColor 主颜色值 gl_SecondaryColor vec4 glSecondaryColor 辅助颜色值 gl_Normal …...
即将发布的 Kibana 版本可运行 Node.js 18
作者:Thomas Watson Kibana 构建在 Node.js 框架之上。 为了确保每个 Kibana 版本的稳定性和使用寿命,我们始终将捆绑的 Node.js 二进制文件保持为最新的最新长期支持 (LTS) 版本。 当 Node.js 版本 18 升级到 LTS 时,我们开始将 Kibana 升级…...
基于遗传算法改进的支持向量机多分类仿真,基于GA-SVM的多分类预测,支持相机的详细原理
目录 背影 支持向量机SVM的详细原理 SVM的定义 SVM理论 遗传算法的原理及步骤 SVM应用实例,基于遗传算法优化SVM的多分类预测 完整代码包括SVM工具箱:https://download.csdn.net/download/abc991835105/88175549 代码 结果分析 展望 背影 多分类预测对现代智能化社会拥有重…...
MySQL5.7源码编译Debug版本
编译环境Ubuntu22.04LTS 1 官方下载MySQL源码 https://dev.mysql.com/downloads/mysql/?spma2c6h.12873639.article-detail.4.68e61a14ghILh5 2 安装基础软件 cmakeclangpkg-configperl 参考:https://dev.mysql.com/doc/refman/5.7/en/source-installation-prere…...
ORA-48913: Writing into trace file failed, file size limit [50000000] reached
检查某环境的alert_orcl1.log时,发现有很多的ORA-48913报错,细节如下 Sat Jul 22 19:34:04 2023 Non critical error ORA-48913 caught while writing to trace file "/u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dw00_138010.trc" E…...
线上Zookeeper问题解决记录
zookeeper问题: 日志目录: /home/cmccdata/app/zookeeper/logs dataDir/home/cmccdata/app/zookeeper/data/zoodata dataLogDir/home/cmccdata/app/zookeeper/data/zoolog 问题0: 2023-08-03 17:15:43,139 [myid:1] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:…...
Docker极速安装Jenkins
安装 Jenkins 是一个常见的任务,使用 Docker 进行安装可以简化该过程并确保环境一致性。以下是在 Docker 中安装 Jenkins 的详细步骤: 安装 Docker: 首先,请确保您已在目标机器上安装了 Docker。根据您的操作系统,可以在 Docker 官…...
TransnormerLLM 中 FlashLinearAttention 的纯pytorch实现
Github 仓库:https://github.com/One-sixth/flash-linear-attention-pytorch flash-linear-attention-pytorch 纯 Pytorch 实现 TransnormerLLM 中快速线性注意力算子。 用于学习目的。 如果你希望用于训练模型,你可能要修改为 CUDA 或 Triton 的实现&…...
从NPM注册中心获取包
目录 1、搜索和选择要下载的包 1.1 为什么使用 1.2 工作原理 1、质量 2、维护 3、受欢迎程度 4、名气 1.1、开始搜索包 2、在本地安装下载和安装软件包 2.1 安装未限定作用域的包 2.2 安装有作用域的公共包 2.3 安装私有包 2.4 测试包安装 2.5 已安装的软件包版本…...
Elastic的下载
文章目录 ElasticSearch的下载扩展1(ElasticSearch 与 JDK 版本 适配)扩展2(访问 http://192.168.1.200:9200 没有显示信息)扩展3(免密登录) ElasticSearch的下载 官方下载网址:https://www.el…...
day52-Redis
Redis 1.Redis 1.1 RESP连接Redis 1.2 定义:是一个高性能的key-value数据库(非关系型数据库) 1.3 数据类型: key键的类型是字符串类型; 值的类型有五种:字符串String,哈希hash࿰…...
高效处理矢量大数据的高可用解决方案
高效处理矢量大数据的高可用解决方案 解决方案目标 存储海量矢量数据实时分析海量矢量数据实现海量矢量数据的可视化提供高可用、高性能和高可拓展性解决方案概述 海量数据查询与可视化 系统技术流程 方案一 数据存储: PostgreSQL+PostGIS(矢量数据存储和空间分析)数据服务…...
Docker Compose构建lnmp
目录 Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境 Compose的优点 先来了解一下我们平时是怎么样使用docker的?把它进行拆分一下: 1…...
Flutter开发问题记录
1. Q:Mac电脑通过AndroidStudio运行软件到iphone报错 automatically assigning platform iOS with version 10.0 on target Runner because no platform was specified. A:项目中ios目录下,Podfile文件第2行 platform :ios, ‘11.0’,取消注释 2. Q:Mac电脑通过And…...
如何使用本地mock数据
当后端同事接口数据还未完成,我们前端开发需要使用数据时,怎么办呢?这里可以自己本地mock数据先用着啦!仅在开发时使用 1. 创建一个 xxx.js文件,对外暴露一个数组; 对新建js文件编写导出,返回数…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
