memset初始化

Posted redblackk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memset初始化相关的知识,希望对你有一定的参考价值。

上网搜了一下:

 

0x3f3f3f3f还能给我们带来一个意想不到的额外好处:如果我们想要将某个数组清零,我们通常会使用memset(a,0,sizeof(a))这样的代码来实现(方便而高效),但是当我们想将某个数组全部赋值为无穷大时(例如解决图论问题时邻接矩阵的初始化),就不能使用memset函数而得自己写循环了(写这些不重要的代码真的很痛苦),


我们知道这是因为memset是按字节操作的,它能够对数组清零是因为0的每个字节都是0,


现在好了,如果我们将无穷大设为0x3f3f3f3f,那么奇迹就发生了,0x3f3f3f3f的每个字节都是0x3f!


所以要把一段内存全部置为无穷大,我们只需要memset(a,0x3f,sizeof(a))。




以上是关于memset初始化的主要内容,如果未能解决你的问题,请参考以下文章

使用 memset 初始化整个数组

零初始化器比 memset 快吗?

memset 初始化数组 & 实现原理

memset初始化

memset 对每个字节进行初始化 (0,-1)

C语言memset问题