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函数相关推荐

  1. c语言memset函数用法,C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s, int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一 ...

  2. c语言memset对应java,C语言memset函数详解

    C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即"内存"(memory)的意思. ...

  3. c语言memset函数作用,C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s,int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一般 ...

  4. C语言memset函数及其用法

    C语言memset函数及其用法 include <string.h> void *memset(void *s, int c, unsigned long n); 函数的功能是: 将指针变 ...

  5. memset函数及其用法,C语言memset函数详解

    在前面不止一次说过,定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构.在使用数组的时候经常因为没有初始化而产生"烫烫烫烫烫烫"这样的野值,俗称"乱码 ...

  6. C语言 memset()函数(内存初始化函数)

    文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符 ...

  7. c语言memset函数用法,深入学习C语言中memset()函数的用法

    头文件: #include memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为: void * memset( void * ptr, int value, size_t num ...

  8. C语言 memset函数简单实现

    数组对象初始化时,使用memset函数非常方便.对于CString却是个坏方法,会释放掉CString内部分配的内存,并且导致其指针对象变成野指针. 下面贴上memset函数实现方法: void* M ...

  9. c语言memset() 函数

    memset() 函数可以说是初始化内存的"万能函数",通常为新申请的内存进行初始化工作(尤其是数组和结构体这种占用内存大的数据结构),直接操作内存空间. 功能:将指针变量 s 所 ...

最新文章

  1. HTML5 javascript修改canvas的大小
  2. 机器学习的前期入门汇总
  3. numpy将bool值转换成数值
  4. mysql数据库重做日志文件_mysql数据库重做日志
  5. 编写一个java打印心程序_java – ?同时打印心脏符号
  6. 11 QM配置-检验计划配置-维护检验批编号范围
  7. 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法
  8. Echarts数据可视化parallel平行坐标系,开发全解+完美注释
  9. js传中文到java乱码怎么解决方法_页面js中文乱码怎么处理?
  10. pyqt QTableView详细用法
  11. blos硬盘启动台式计算机,戴尔台式机bios设置硬盘启动教程
  12. Python新手入门第一步:什么是 IDE?IDE 有什么用?
  13. 手机支付宝,微信的请求userAgent
  14. 别做正常的傻瓜---奚恺元 随记2017-12-6周三
  15. 请正视抑郁症(附Zung氏抑郁自评量表(SDS))
  16. Thinkbook16+ 2022 安装Ubuntu20.04
  17. 构建Linux Shell [第四部分]
  18. idea maven项目导入下载好的jar包
  19. 标准证件照电子版怎么做?
  20. 2023年电工杯数学建模AB题思路分析

热门文章

  1. iMac一体机开机密码忘了
  2. leetcode中出现Error - Found cycle in the TreeNode
  3. 前端学习 HTML+CSS DAY 1
  4. linux vim命令找不到,sudo vim “找不到命令”的问题
  5. 【OpenCV】中saturate_castuchar的含义和用法是什么?
  6. 深井软岩巷道群支护技术与应用_双鸭山优质煤矿锚杆厂-订制_双福煤矿支护架...
  7. HDL—Verilog Language—Vectors—Vector reversal 1
  8. scrapy-splash java,scrapy-splash简单使用详解
  9. ABAP-MESSAGE介绍
  10. 什么是程序员的优秀品质?