1)void *memset(void *s,int c,size_t n) 总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
2).memset() 函数常用于内存空间初始化。如: char str[100]; memset(str,0,100);
3).memset可以方便的清空一个结构类型的变量或数组。
如: struct sample_struct{ char csName[16]; int iSeq; int iType; };
对于变量: struct sample_strcut stTest;
一般情况下,清空stTest的方法: stTest.csName[0]=’/0′; stTest.iSeq=0; stTest.iType=0;
用memset就非常方便: memset(&stTest,0,sizeof(struct sample_struct));
如果是数组: struct sample_struct TEST[10]; 则 memset(TEST,0,sizeof(struct sample_struct)*10);
#include <mem.h> void* memset(void* s, int c, size_t n){ unsigned char* p = (unsigned char*) s;
while (n > 0) { *p++ = (unsigned char) c; –n; }
return s; }
============================
头文件:#include <string.h> bzero() 会将内存块(字符串)的前n个字节清零,其原型为: void bzero(void *s, int n); 【参数】s为内存(字符串)指针,n 为需要清零的字节数。 bzero()会将参数s 所指的内存区域前n 个字节,全部设为零值。 实际上,bzero(void *s, int n) 等价于 memset((void*)s, 0,size_tn),用来将内存块的前 n 个字节清零,但是 s 参数为指针,又很奇怪的位于 string.h 文件中,也可以用来清零字符串。 注意:bzero() 不是标准函数,没有在ANSI中定义,笔者在VC6.0和MinGW5下编译没通过;据称Linux下的GCC支持,不过笔者没有亲测。鉴于此,还是使用 memset() 替代吧。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182396.html原文链接:https://javaforall.cn