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

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

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数字

注意memset不同于strcmp,memset一直比较至字符串结尾的\0

参数

ptr1:指向内存块的指针

ptr2:指向内存块的指针

num:要比较的字节数

返回值


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


http://www.mrgr.cn/news/33955.html

相关文章:

  • 基于单片机的水位检测系统仿真
  • C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
  • 基于STM32残疾人辅助行走系统
  • Python知识点:如何使用Python进行物联网数据处理
  • 【全网最全】2024年华为杯研究生数学建模A题成品论文
  • tornado
  • 【数据结构】图的遍历
  • Project Online 专业版部署方案
  • SBB对象和SBB实体的区别
  • SQL查询中字段选择的两种写法:select * VS select 字段名
  • 软考高级:数据库保持函数依赖和有损无损分解 AI 解读
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23
  • 淘客导购系统的分布式存储与管理
  • Vue3通过$emit实现子向父传递数据
  • 【Linux 从基础到进阶】 Google Cloud Platform 配置与管理
  • 网络通信——路由器、交换机、集线器(HUB)
  • EP26 在onLoad周期获取参数获取对应的数据
  • PHP中如何使用三元条件运算符
  • 深入理解Python中的数据结构:deque
  • 告别枯燥:我开发了一个在电脑桌面上使用弹幕来背单词的软件