C语言memset函数使用方法详解
C语言memset函数使用方法详解
一。函数原形 void* memset(void*s,intch,size_tn)
二。函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零
三。常见错误
1.搞反了ch和n的位置
对char[20]清零,一定是memset(a,0,20);
2.过度使用memset
3.其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现
intfun(strucysomething*a)
{
.....
memset(a,0,sizeof(a));
.....
}
这里错误的原因是VC函数传参过程中的指针降级,导致sizeof(a),返回的是一个something*指针类型大小的的字节数,如果是32位,就是4字节。经常使用这种形式
memset(a,0,n*sizeof(type));
4.想对数组初始化为1
intmain()
{
inta[20];
memset(a,1,20);
}
这种方法不能初始化为1。原因是memset函数是按照字节赋值的,int是4个字节所以为0x01010101,就是十进制的16843009。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 老人掉牙祝福语简短语
11 嫂子生日英语祝福语简短
12 见证求婚文案祝福语简短
13 硕士毕业蛋糕祝福语简短
14 婚礼明星的祝福语简短
15 师姐毕业送花祝福语简短
16 新年酒席开席祝福语简短
17 开学新人祝福语简短英语
18 老爸吃饺子祝福语简短