结构体数组初始化赋值为0_使⽤memset函数初始化时需要注
数组全部赋值为1意的地⽅
memset ⼀般使⽤“0”初始化内存单元,通常是给数组或结构体进⾏初始化,或清空数组或结构体。
memset 函数声明为:
void *memset(void *str, int c, size_t n)
其功能是将 str 中当前位置后⾯的 n 个字节 (typedef unsigned int size_t )⽤ c 替换并返回 str 。
memset 函数是按字节对内存块进⾏初始化的。
这⾥⼀定要注意:memset 函数是按字节对内存块进⾏初始化的
对于 char 型的数组,可以将其初始化为任意⼀个字符。
但对于 int 型的数组,由于 memset 函数按字节对内存块进⾏初始化,所以不能⽤它将 int 数组初始化为 0 和 -1 之外的其他值。
如下图所⽰,memset 赋值为 -1 或 0,最后的结果是正确的:
但使⽤memset赋值为-1和0以外的值,最终的结果并不是期望值。⽐如赋值为1,则如下图所⽰:
00000001 00000001 00000001 00000001 = 16843009
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论