C语言memset函数
C语言memset函数
- 一、memset函数是什么有什么作用
- 二、为什么使用menset函数
- 三、memset函数的使用
一、memset函数是什么有什么作用
# include <string.h>
void *memset(void *s, int c, unsigned long n);
定义:
- 内存初始化方法,
mem
即“内存”(memory
)的意思。
作用:
- 初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。
- 将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。
二、为什么使用menset函数
- 我们都知道定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。
- memset 一般使用“0”初始化内存单元,而且通常是给数组或结构体进行初始化。
- 一般的变量如 char、int、float、double 等类型的变量直接初始化即可,没有必要用 memset。如果用 memset 的话反而显得麻烦。
注意:
- memset 函数的第三个参数 n 的值一般用 sizeof() 获取。
- 如果是对指针变量所指向的内存单元进行清零初始化,那么一定要先对这个指针变量进行初始化,即一定要先让它指向某个有效的地址。而且用memset给指针变量如p所指向的内存单元进行初始化时,n 千万别写成 sizeof§,这是新手经常会犯的错误。因为 p 是指针变量,不管 p 指向什么类型的变量,sizeof§ 的值都是 4。
三、memset函数的使用
例题:
# include <stdio.h>
# include <string.h>
int main(void)
{int i; //循环变量char str[10];char *p = str;memset(str, 0, sizeof(str)); //只能写sizeof(str), 不能写sizeof(p)for (i=0; i<10; ++i){printf("%d\x20", str[i]);}printf("\n");return 0;
}
结果:
0 0 0 0 0 0 0 0 0 0--------------------------------
Process exited after 0.7619 seconds with return value 0
请按任意键继续. . .
每一个数组都初始化为0。
C语言memset函数相关推荐
- c语言memset函数用法,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s, int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一 ...
- c语言memset对应java,C语言memset函数详解
C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即"内存"(memory)的意思. ...
- c语言memset函数作用,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s,int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般 ...
- C语言memset函数及其用法
C语言memset函数及其用法 include <string.h> void *memset(void *s, int c, unsigned long n); 函数的功能是: 将指针变 ...
- memset函数及其用法,C语言memset函数详解
在前面不止一次说过,定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构.在使用数组的时候经常因为没有初始化而产生"烫烫烫烫烫烫"这样的野值,俗称"乱码 ...
- C语言 memset()函数(内存初始化函数)
文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符 ...
- c语言memset函数用法,深入学习C语言中memset()函数的用法
头文件: #include memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为: void * memset( void * ptr, int value, size_t num ...
- C语言 memset函数简单实现
数组对象初始化时,使用memset函数非常方便.对于CString却是个坏方法,会释放掉CString内部分配的内存,并且导致其指针对象变成野指针. 下面贴上memset函数实现方法: void* M ...
- c语言memset() 函数
memset() 函数可以说是初始化内存的"万能函数",通常为新申请的内存进行初始化工作(尤其是数组和结构体这种占用内存大的数据结构),直接操作内存空间. 功能:将指针变量 s 所 ...
最新文章
- HTML5 javascript修改canvas的大小
- 机器学习的前期入门汇总
- numpy将bool值转换成数值
- mysql数据库重做日志文件_mysql数据库重做日志
- 编写一个java打印心程序_java – ?同时打印心脏符号
- 11 QM配置-检验计划配置-维护检验批编号范围
- 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法
- Echarts数据可视化parallel平行坐标系,开发全解+完美注释
- js传中文到java乱码怎么解决方法_页面js中文乱码怎么处理?
- pyqt QTableView详细用法
- blos硬盘启动台式计算机,戴尔台式机bios设置硬盘启动教程
- Python新手入门第一步:什么是 IDE?IDE 有什么用?
- 手机支付宝,微信的请求userAgent
- 别做正常的傻瓜---奚恺元 随记2017-12-6周三
- 请正视抑郁症(附Zung氏抑郁自评量表(SDS))
- Thinkbook16+ 2022 安装Ubuntu20.04
- 构建Linux Shell [第四部分]
- idea maven项目导入下载好的jar包
- 标准证件照电子版怎么做?
- 2023年电工杯数学建模AB题思路分析
热门文章
- iMac一体机开机密码忘了
- leetcode中出现Error - Found cycle in the TreeNode
- 前端学习 HTML+CSS DAY 1
- linux vim命令找不到,sudo vim “找不到命令”的问题
- 【OpenCV】中saturate_castuchar的含义和用法是什么?
- 深井软岩巷道群支护技术与应用_双鸭山优质煤矿锚杆厂-订制_双福煤矿支护架...
- HDL—Verilog Language—Vectors—Vector reversal 1
- scrapy-splash java,scrapy-splash简单使用详解
- ABAP-MESSAGE介绍
- 什么是程序员的优秀品质?