浅谈C++中memset函数的用法

memset函数的头文件是cstring, 实际上是一个字符串处理函数,但常用于给静态数组(不是new出来的数组)赋特定初值。

#include<cstring>

C++ Reference关于memset函数的链接页:memset - C++ Reference

在使用的时候有2点需要特别注意:

1. value虽然是以int(32 bit)类型给的,但最终是转化为了unsigned char(8 bit)

所以,可以赋的最大初值是memset(a,0x3f, sizeof(a)),相当于赋了1061109567,

memset(a, 0xff, sizeof(a))相当于赋-1,memset(a, 0, sizeof(a))相当于赋0,而想要赋初值1是没法实现的

memset(a,0x3f,sizeof(a));            // 1061109567,1061109567,1061109567,1061109567,1061109567
memset(a, 1, sizeof(a));            // 16843009,16843009,16843009,16843009,16843009 

2. 动态开辟(new)出来的数组的头指针(p)经过sizeof运算后得到只是头指针的大小而不是整个数组的大小,所以动态开辟的数组不能用memset赋初值,如果要赋初值0的话,直接new的时候后面添一个()就行了。

int* p = new int[5]();              // 0,0,0,0,0
memset(p, 1, sizeof(p));            // 16843009,0,0,0,0
delete[] p;

浅谈C++中memset函数的用法相关推荐

  1. 浅述numpy中argsort()函数的用法

    浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...

  2. python3打印如何换行_浅谈Python3中print函数的换行

    Python3中print函数的换行 最近看了看Python的应用,从入门级的九九乘法表开始,结果发现Python3.x和Python2.x真的是有太大的不同之处,就比如这里的换行处理,怕忘记先记下来 ...

  3. vue 中provide的用法_[转]浅谈vue中provide和inject 用法

    provide:Object | () => Object inject:Array | { [key: string]: string | Symbol | Object } provide ...

  4. 浅述python中argsort()函数的用法

    由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在python环境下进行了测试,大概了解了其相关的用处, ...

  5. 浅谈Javascript中的函数重载实现

    其它面向对象语言如Java的一个常见特性是:能够根据传入的不同数量量或类型的参数,通过"重载"函数来发挥不同的功用.但是这个特性在Javascript中并没有被直接支持,可是有很多 ...

  6. 浅谈asio中async_accept函数占用内存高的写法

    相比大家都使用过asio 中的async_accpect如果使用的好,内存会占用的小,下面来看一端实列:

  7. vue 中provide的用法_浅谈vue中provide和inject 用法

    一.概念解析 成对出现:provide和inject是成对出现的 作用:用于父组件向子孙组件传递数据 使用方法:provide在父组件中返回要传给下级的数据,inject在需要使用这个数据的子辈组件或 ...

  8. 浅谈Java中try catch 的用法

    我们编译运行程序出错的时候,编译器就会抛出异常.抛出异常要比终止程序灵活许多,这是因为 的Java提供了一个"捕获"异常的的处理器(处理器)对异常情况进行处理. 如果没有提供处理器 ...

  9. java中parseint函数_浅谈 js中parseInt函数的解析

    首先还是从很热门的实例parseInt("09")==0说起. parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制. 比如说pa ...

最新文章

  1. Microbiome:NGLess语言实现快速可重复分析宏基因组的流程NG-meta-profiler
  2. 2021十大科技趋势来了!阿里巴巴达摩院全新发布
  3. SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
  4. jrebel gradle_JRebel适用于Gradle Spring Boot应用程序
  5. C#递归遍历指定目录下文件和文件夹
  6. mysql 授权指定库,mysql创建新用户并给授权指定的数据库权限
  7. (万里开源)greatdb mysql 8.0以上版本创建用户并授权远程连接
  8. 10年老分析师:数据分析不只是一个岗位,更是一种职场必备能力
  9. LINUX编译automake
  10. java byte 相等比较_Java字节码跟真正汇编的比较
  11. [黑客光盘2009年更新]100张黑客光盘 数百G黑客资源~~~~~~~~~~~~~
  12. 旅馆业治安管理信息系统
  13. yum安装wget命令
  14. redis问题及答案
  15. NPS, 校外连接校园网
  16. 假货泛滥是淘宝的毒瘤
  17. 3月13日云栖精选夜读 | Serverless 风暴来袭,前端工程师如何应对?...
  18. Design Compiler is not enabled Synopsys License制作
  19. 高地址和低地址、高字节低字节、大小端模式(及如何互换),存储顺序(!!)
  20. Day105 项目实战7 商品查询

热门文章

  1. php larval workerman,laravel框架与workerman的整合
  2. [溢泽国学讲堂]论气
  3. 多边形内角和c语言编程,多边形的内角和与外角和同步练习题
  4. Mondrian异常
  5. 李林为什么是神?22年李林4套卷总结
  6. Excel统计某列重复值数量方法
  7. 数仓中应该出现的所有表格
  8. 上海交大和浙大计算机专业哪个学校,清华、北大最差的专业和上海交大、浙大最好的专业怎么选?...
  9. 蓝牙技术|苹果公开含视力矫正头戴设备专利,AR眼镜明年将发布?
  10. surface dice