C语言memset函数使用方法详解分享

—-想了解C语言memset函数使用方法详解分享的全部内容且更多的C语言教程关注<猴子技术宅>

C语言memset函数使用方法详解

一。函数原形   void *  memset(void*s, int ch,size_t n)

二。函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零

三。常见错误

1.搞反了 ch 和 n的位置

对char[20]清零,一定是 memset(a,0,20);

2.过度使用memset

3.其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现

  int fun(strucy something * a)   {   .....   memset(a,0,sizeof(a));   .....   }     

这里错误的原因是VC函数传参过程中的指针降级,导致sizeof(a),返回的是一个 something*指针类型大小的的字节数,如果是32位,就是4字节。经常使用这种形式

  memset(a,0,n*sizeof(type));

4.想对数组初始化为1

  int main()   {      int a[20];      memset(a,1,20);   }

这种方法不能初始化为1。原因是memset函数是按照字节赋值的,int 是4个字节所以为0x01010101,就是十进制的16843009。 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/488638.html

(0)
上一篇 2020年11月12日 下午2:18
下一篇 2020年11月12日 下午2:19

精彩推荐

发表评论

您的电子邮箱地址不会被公开。