使用memset函数需要提前引用头文件include <memory.h>#include <string.h>
函数原型void *memset(void *s,int ch, unsigned n)
其中:
参数s:需要赋值的内存对应的指针,需要注意的是,由于第一个参数是void *类型的,所以在我们实际使用时,括号内的第一个值应该是一个地址(可以是指针,但不能是普通变量,普通变量应该用取地址符&转化为地址)。
参数ch:将ch对应的ASCII值赋给*s
参数n: 赋值的内存块大小
该函数常用于为新开辟的内存做初始化。

  1. 在socket通信中,函数memset经常使用,用于清空缓存区数组buffer:
memset(buffer, 0, sizeof(buffer));
  1. memset可用于将内存全部置为某个值:
char str[100];
memset(str, "\0", sizeof(str));
  1. memset可用于清空结构体
struct Mystruct
{int age;char name[];
};
struct Mystruct Lily;

用一般的方法清空结构体变量Lily,需要对结构体中的每一个变量进行清空处理,而当用到memset时:

memset(&Lily, 0, sizeof(struct Mystruct));

只需一条语句就可以清空结构体变量。
4. memset清空结构体数组
接3.中的结构体变量,假设我们不只有Lily一个人,而是有20个人,这样一个结构体数组也可以用memst函数清空。

struct Mystruct People[20];
memset(People, 0, sizeof(struct Mystruct)*20);

需要注意的是,这里People没有取地址,因为它是一个数组,People本来就是一个指针,也就是地址了。
推荐一篇非常好本文参考的博客https://www.cnblogs.com/ZY-Dream/p/10049860.html

memset函数c语言使用相关推荐

  1. 编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。

    编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性. memset这个函数的作用大致可以理解为将从指针指向的地址开始的指定字节长度的空间全部替换为指定的值.那么我们可以很 ...

  2. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, si ...

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

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

  4. C语言memset函数

    C语言memset函数 一.memset函数是什么有什么作用 二.为什么使用menset函数 三.memset函数的使用 一.memset函数是什么有什么作用 # include <string ...

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

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

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

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

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

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

  8. 【转】C语言的memset函数

    http://vip.6to23.com/tenax/clib/string/memset.htmlhttp://hi.baidu.com/longchengjiang/blog/item/32c0e ...

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

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

最新文章

  1. [导入]郁闷`````[原]
  2. xml入门简介--两天学会xml
  3. 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics
  4. 如何设置jinternalframe无边框_word文档美化技巧:加个边框提升版面颜值
  5. 《剑指offer》数值的整数次方
  6. vue+xterm.js 实现Linux command界面
  7. input 框 去掉下面的提示文字、提示选项
  8. BZOJ 2301 Problem b(莫比乌斯反演+分块优化)
  9. 一晚浓浓的程序员鸡汤,先干为敬
  10. 南桥芯片组行业调研报告 - 市场现状分析与发展前景预测
  11. Java简单从文件读取和输出
  12. 如何把 Excel 写入数据库
  13. 19年6月英语六级第二套听力单词
  14. 计算机编程专业有哪些,计算机本科编程专业开设的全部专业课程有哪些
  15. 如何生成王者荣耀、QQ飞车等游戏“空白名”、“重复名”等特殊名
  16. 再次爬取干货集中营的福利图片
  17. python 打印自己代码_用python打印网页源代码
  18. 关于DVDScr, Screener,TS, TC等常见术语
  19. 2021-08-11 WPF控件专题 Frame 控件详解
  20. Git最佳实践(init、config、status、add、commit、diff、push) 1.0v

热门文章

  1. 基于Java的校园图书管理APP设计
  2. canvas的toDataURL()方法
  3. 【MAPBOX基础功能】09、mapbox绘制线图层并进行添加、删除、更新、显隐等操作
  4. 【Twain协议】Twain协议参数解析
  5. picasa lingoes(灵格斯) 冲突
  6. 7.3王者服务器维护,王者荣耀:7/3突然停机维护,玩家无法登陆,疑似解决这些问题...
  7. 【无标题】免费版 基础实验(答案)
  8. JBI消息规范-第一部分
  9. C语言运算符和逻辑表达式
  10. [转载]学习之恍然大悟时刻:最大似然法