C语言memset函数使用方法详解
发布时间:2020-12-15 03:32:52 所属栏目:C语言 来源:网络整理
导读:C语言memset函数使用方法详解 一。函数原形 void * memset(void*s,int ch,size_t n) 二。函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零 三。常见错误 1.搞反了 ch 和 n的位置 对char[20]清零,一定是 memset(
C语言memset函数使用方法详解 一。函数原形 void * memset(void*s,int ch,size_t n) 二。函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零 三。常见错误 1.搞反了 ch 和 n的位置 对char[20]清零,一定是 memset(a,20); 2.过度使用memset 3.其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现 int fun(strucy something * a) { ..... memset(a,sizeof(a)); ..... } 这里错误的原因是VC函数传参过程中的指针降级,导致sizeof(a),返回的是一个 something*指针类型大小的的字节数,如果是32位,就是4字节。经常使用这种形式 memset(a,n*sizeof(type)); 4.想对数组初始化为1 int main() { int a[20]; memset(a,1,20); } 这种方法不能初始化为1。原因是memset函数是按照字节赋值的,int 是4个字节所以为0x01010101,就是十进制的16843009。 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |