void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的 结构体 或 数组 进行清零操作的一种最快方法
代码示例:
float stretch_p[256], stretch_p1[256], stretch_num[256];
//清空三个数组,初始化填充数组元素为0
memset(stretch_p, 0, sizeof(stretch_p));
memset(stretch_p1, 0, sizeof(stretch_p1));
memset(stretch_num, 0, sizeof(stretch_num));

errno_t memset_s(void * dest,rsize_t destsz,int ch,rsize_t count)
运行时检测到以下错误,并且如果dest和destsz本身有效,则在将ch存储到目标范围[dest,dest + destsz)的每个位置之后调用当前安装的约束处理函数:
dest 是一个空指针
destsz或count大于RSIZE_MAX
count大于destsz(会发生缓冲区溢出)
如果由dest <count <= destsz指向的字符数组的大小,行为是未定义的; 换句话说,destsz的错误值不会暴露即将发生的缓冲区溢出。 作为所有边界检查函数,只有当__STDC_LIB_EXT1__由实现定义时,以及在包含string.h之前用户将__STDC_WANT_LIB_EXT1__定义为整数常量1时,memset_s才能保证可用。
sext-指向要填充的对象的指针
ch-填充字节
count-要填充的字节数
destsz-目标数组的大小

返回值
1) dest 副本
2)成功时为零,错误时为非零。 同样出错的是,如果dest不是空指针并且destsz有效,那么将destsz填充字节ch写入目标数组。

注意
如果此函数修改的对象在其余生命期内(例如,gcc bug 8537)不再被访问,则memset可能会被优化(在as-if规则下)。 因为这个原因,这个函数不能用来擦洗内存(例如,填充一个存储密码为零的数组)。 memset_s禁止这种优化:保证执行内存写入。 第三方解决方案包括FreeBSD explicit_bzero或Microsoft SecureZeroMemory。

memset和memset_s相关推荐

  1. C语言函数大全-- m 开头的函数(1)

    C语言函数大全 本篇介绍C语言函数大全-- m 开头的函数 1. malloc 1.1 函数说明 函数声明 函数功能 void *malloc(size_t size); 用于动态分配内存 参数: s ...

  2. 安全函数最全总结:字符串拷贝,内存拷贝,字符串格式化等

    对于安全函数和非安全函数有几个方面需要比较: 入参.安全函数会比非安全函数多一个目的缓冲区长度,这个参数一般紧跟着目的缓冲区指针,作为函数的第二个入参. 函数返回值.非安全函数也就是系统函数,比如字符 ...

  3. c语言s-next,memset_s - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

    在头文件中定义void * memset(void * dest,int ch,size_t count);(1) errno_t memset_s(void * dest,rsize_t dests ...

  4. 疑问:c++中的memset

    在dev c++下调试  1 #include <mem.h>  2 #include <iostream.h>  3 #include <cstdlib>     ...

  5. C++ memset

    memset的主要功能是对一片内存进行赋值(逐字节进行) 包含在头文件#include < cstring >中. 函数模板 void *memset(void *s, int v, si ...

  6. c++ memset 语言_自学C语言不知道从哪儿下手?学习框架都帮你列好了!

    首先up主发现头条上居然没有技术板块,不知道是不是我没看见,那么我就做头条技术萌新大佬哈哈哈哈,想想都刺激, 普通人学习c语言大概需要3个月时间,每天码代码,学好了c,你会发现c++基本只需要1个月不 ...

  7. memset()函数用法及其作用

    memset()函数原型是: extern void *memset(void *buffer, int c, int count) //buffer:为指针或是数组, //c:是赋给buffer的值 ...

  8. memset初始化内存

    在suse 9,运行man memset 查看memset的解释如下: "NAME        memset - fill memory with a constant byte SYNO ...

  9. C语言memset函数详解(Linux下和windows下的差异)

    memest原型 (please type "man memset" in your shell) void *memset(void *s,  int c, size_t n); ...

最新文章

  1. 闽江夜话:聆听清华之声,畅聊数字中国的未来
  2. 软件配置文件如何读写
  3. javascript 红宝书笔记之如何使用对象 如何操作数组
  4. Tensorflow:Tensorboard使用
  5. 找最大公约数和最小公倍数(c语言实现)
  6. Confluence 6 针对你的数据库类型确定校验 SQL
  7. 【MySQL】MySQL show index 索引信息
  8. Python使用Apriori算法分析导演请某演员后还会请哪个演员
  9. 软件工程第二次课课堂总结
  10. CH340串口驱动的官网下载链接地址(包含各大操作系统平台)
  11. 笔记-SIM900A模块开发:GPRS建立TCP连接与服务器进行数据传输
  12. git从远程仓库拉取指定日期版本的代码到本地
  13. [内附完整源码和文档] 基于JSP网上招聘系统的设计与实现
  14. javaScript实现通过鼠标滑轮改变元素大小
  15. 老挑毛 U盘 winPe 制作 流程
  16. linux下学习db2
  17. 阿里云,华为云哪个好?
  18. Codis的原理以及部署—— CODIS (分布式 Redis 解决方案)
  19. Smart200 PLC实现Bool信号接通延时、关闭延时作用
  20. Quartus II 11.0 破解成功后,编译时却提示不支持 xxx器件的ERROR

热门文章

  1. 游虎DOTA专区 - 内容丰富的DOTA专区,DOTA录像分析很不错的..
  2. 文件如何自动上传到服务器,ftp如何自动上传文件到服务器
  3. 【沐风老师】3dMax Gyroid Minimal Surface 极小曲面建模详细教程
  4. 网络费用报销管理系统的设计与实现
  5. Re:从零开始的 RTL-SDR 折腾记
  6. 基于深度强化学习的智能船舶航迹跟踪控制
  7. Bootstrap(三) 网格系统
  8. js写小游戏(打字母)
  9. 笔记本更换固态硬盘的教程
  10. Excel MATCH函数判断两列包含关系