60.【C语言】内存函数(memset,memcmp函数)

3.memset函数(常用)

*简单使用

memset:memory set

cplusplus的介绍 点我跳转

翻译:

函数

memset


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

填充内存块

ptr指向的内存块的num个字节设置为指定值(解释为无符号char)。

(指针ptr类型为void*,因此可以接受任何类型的数组)

参数


ptr:指向要填充的内存块

value:要设置的值,

num:要设置的字节个数

size_t是无符号整型

返回值

ptr被返回

如将arr数组的每一个字节都设成01

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int arr[] = { 1,2,3,4,5 };
	memset(arr, 1, 5 * 4);//int类型的数组,一个元素占4个字节
	return 0;
}

 

x86环境下,打开内存窗口

输入&arr

注意内存中每一个元素显示为01 01 01 01

十六进制转十进制:1010101H=16843009D(D为Dec的缩写,十进制)

所以在使用memset时要小心,是以字节为单位操作的!!!

同样对于char类型的数组

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = { "12345" };
	memset(arr, 1, 5);
	return 0;
}

 memset处下断点

执行至return 0;后

char数组每个元素占1个字节,\x1为十六进制的1

注意:用memset改动时要小心,不能越界访问!

否则显示

4.memcmp函数

memcmp:memory compare

cplusplus网的介绍 点我跳转

翻译:

函数

memcmp


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

比较两个内存块

比较分别由ptr1ptr2指向的前num个字节的内存块,如果两者相等,返回0,如果他们两个不同(较大或较小),返回非0数字

注意memcmp不同于strcmp,memcmp找到\0后不会停止比较(免疫\0)

参数

ptr1:指向内存块的指针

ptr2:指向内存块的指针

num:要比较的字节数

返回值


返回一个整型数值表明两个内存块的内容之间的关系

 比较arr1和arr2的前14个字节

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int arr1[] = {1,2,3,4,5};
	int arr2[] = { 1,2,3,4 };
	int ret = memcmp(arr1, arr2, 14);
	printf("%d", ret);
    return 0;
}

x86环境下,打开内存窗口,输入&arr1

第14个字节为画圈处

输入&arr2

第14个字节为画圈处

前14个字节都一样,返回0

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

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

相关文章

qt-C++笔记之作用等同的宏和关键字

qt-C笔记之作用等同的宏和关键字 code review! Q_SLOT 和 slots&#xff1a; Q_SLOT是slots的替代宏&#xff0c;用于声明槽函数。 Q_SIGNAL 和 signals&#xff1a; Q_SIGNAL类似于signals&#xff0c;用于声明信号。 Q_EMIT 和 emit&#xff1a; Q_EMIT 是 Qt 中用于发射…

【Linux】Linux的基本指令(1)

A clown is always a clown.&#x1f493;&#x1f493;&#x1f493; 目录 ✨说在前面 &#x1f34b;知识点一&#xff1a;Linux的背景 •&#x1f330;1.Unix发展的历史 •&#x1f330;2.Linux发展历史 •&#x1f330;3.企业应用现状 •&#x1f330;4.发行版本 &…

jmeter得到的文档数据处理

通过前面jmeter得到的输出文档&#xff0c;这里是txt文档&#xff0c;里面包含了很多条数据&#xff0c;每条数据的结构如下&#xff1a; 【request】 uuid&#xff1a;xxxxxxx timestamp&#xff1a;xxxxxxxx No.x question&#xff1a;xxxxxxx 【response】 code&#…

windows cuda12.1 pytorch gpu环境配置

安装cuda12.1 nvcc -V conda创建pythong3.10环境 conda create -n llama3_env python3.10 conda activate llama3_env 安装pytorch conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia gpu - Pytorch version for cuda 12.2 - Stack Ov…

传输层 IV(TCP协议——流量控制、拥塞控制)【★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、TCP 流量控制&#xff08;★★&#xff09; 1. 利用滑动窗口实现流量控制 一般说来&#xff0c;我们总是希望数据传输得更快一些。但如果发送方把数据发送得…

powerbi -L10-文件夹内的文件名

powerbi -L10-文件夹内的文件名 Folder.Contents letSource Folder.Contents("\\your_folder\ your_folder "),#"Removed Other Columns" Table.SelectColumns(Source,{"Name", "Date modified", "Folder Path"}), in#&q…

STM32篇:通用输入输出端口GPIO

一.什么是GPIO? 1.定义 GPIO是通用输入输出端口的简称&#xff0c;简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与 外部设备连接起来&#xff0c;从而实现与外部通讯、控制以及数据采集的功能。 简单来说我们可以控制GPIO引脚的电平变化&#xff0c;达到我们的各种目的…

MQ(RabbitMQ)笔记

初识MQ 同步调用优缺点 异步调用优缺点 总结&#xff1a; 时效性要求高&#xff0c;需要立刻得到结果进行处理--->同步调用 对调用结果不关心&#xff0c;对性能要求高&#xff0c;响应时间短--->异步调用

花园管理系统

基于springbootvue实现的花园管理系统 &#xff08;源码L文ppt&#xff09;4-074 4功能结构 为了更好的去理清本系统整体思路&#xff0c;对该系统以结构图的形式表达出来&#xff0c;设计实现该“花开富贵”花园管理系统的功能结构图如下所示&#xff1a; 图4-1 系统总体结…

植物大战僵尸【源代码分享+核心思路讲解】

植物大战僵尸已经正式完结&#xff0c;今天和大家分享一下&#xff0c;话不多说&#xff0c;直接上链接&#xff01;&#xff01;&#xff01;&#xff08;如果大家在运行这个游戏遇到了问题或者bug&#xff0c;那么请私我谢谢&#xff09; 大家写的时候可以参考一下我的代码思…

Nginx反向代理出现502 Bad Gateway问题的解决方案

&#x1f389; 前言 前一阵子写了一篇“关于解决调用百度翻译API问题”的博客&#xff0c;近日在调用其他API时又遇到一些棘手的问题&#xff0c;于是写下这篇博客作为记录。 &#x1f389; 问题描述 在代理的遇到过很多错误码&#xff0c;其中出现频率最高的就是502&#x…

75、Python之函数式编程:生成器的核心方法及更多使用场景

引言 Python中的函数式编程&#xff0c;依托生成器&#xff0c;可以实现惰性求值的特性。但是&#xff0c;生成器其实还可以有更多的使用场景。本文就聚焦生成器&#xff0c;再次聊聊生成器中的主要方法以及更多的使用场景。 本文的主要内容有&#xff1a; 1、生成器的核心方…

解决DockerDesktop启动redis后采用PowerShell终端操作

如图&#xff1a; 在启动redis容器后&#xff0c;会计入以下界面 &#xff1a; 在进入执行界面后如图&#xff1a; 是否会觉得界面过于单调&#xff0c;于是想到使用PowerShell来操作。 步骤如下&#xff1a; 这样就能使用PowerShell愉快地敲命令了&#xff08;颜值是第一生…

SVM原理

SVM 这里由于过了很长时间 博主当时因为兴趣了解了下 博主现在把以前的知识放到博客上 作为以前的学习的一个结束 这些东西来自其他资料上 小伙伴看不懂英文的自行去翻译下吧 博主就偷个懒了 多维空间和低维空间 不一样的分法&#xff0c;将数据映射到高维 &…

vue源码分析(九)—— 合并配置

文章目录 前言1.vue cli 创建一个基本的vue2 项目2.将mian.js文件改成如下3. 运行结果及其疑问&#xff1f; 一、使用 new Vue 创建过程的 2 种场景二、margeOption的详细说明1.margeOption的方法地址2.合并策略的具体使用3.defaultStrat 默认策略方法 三&#xff1a;以生命周期…

基于单片机的水位检测系统仿真

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;DHT11温湿度采集温湿度&#xff0c;滑动变阻器连接ADC0832数模转换器模拟水位传感器检测水位&#xff0c;通过LCD1602显示信息&#xff0c;然后在程序里设置好是否…

docker启动mysql未读取my.cnf配置文件问题

描述 在做mysql主从复制配置两台mysql时&#xff0c;从节点的my.cnf配置为&#xff1a; [mysqld] datadir /usr/local/mysql/slave1/data character-set-server utf8 lower-case-table-names 1 # 主从复制-从机配置# 从服务器唯一 ID server-id 2 # 启用中继日志 relay-l…

【编程底层原理】Java对象头的详细结构、锁机制及其优化技术,以及逃逸分析和JIT技术在性能优化中的作用

一、引言 在Java的多线程世界中&#xff0c;对象头和锁机制是确保数据一致性和程序性能的关键。本文将带你深入探索Java对象头的结构、锁机制的工作原理&#xff0c;以及逃逸分析和即时编译&#xff08;JIT&#xff09;技术如何助力性能优化。 二、Java对象头 1. 对象头的组…

6.数据库-数据库设计

6.数据库-数据库设计 文章目录 6.数据库-数据库设计一、设计数据库的步骤二、绘制E-R图三、关系模式第一范式 (1st NF)第二范式 (2nd NF)第三范式 (3nd NF)规范化和性能的关系 一、设计数据库的步骤 收集信息 与该系统有关人员进行交流、座谈&#xff0c;充分了解用户需求&am…

8. 防火墙

8. 防火墙 (1) 防火墙的类型和结构 防火墙的类型和结构可以根据其在网络协议栈中的过滤层次和实现方式进行分类。常见的防火墙类型包括: 包过滤防火墙:工作在网络层(OSI模型的第3层),主要检查IP包头的信息,如源地址、目的地址、端口号等。电路级网关防火墙:工作在会话层…