博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言socket总结(五) memset()和bzero()
阅读量:4289 次
发布时间:2019-05-27

本文共 1039 字,大约阅读时间需要 3 分钟。

     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() 替代吧。

转载地址:http://bglgi.baihongyu.com/

你可能感兴趣的文章
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
查看>>
3种web会话管理的方式
查看>>
SSM(框架)-异常1:面向接口式编程异常
查看>>
Android蓝牙4.0之玩爆智能穿戴、家具(二)
查看>>
使用Condition实现多线程之间调用
查看>>
javaAPI之String
查看>>
JQ 新窗口打开链接并设置参数
查看>>
JQuery实现列表中复选框全选反选功能封装
查看>>
JAVA GC 简单总结
查看>>
JS中常遇到的浏览器兼容问题和解决方法
查看>>
JAVA学习笔记之-servlet知识点
查看>>
apache 配置不同的端口访问不同的站点
查看>>
2017年3月Java9带来的革新!
查看>>
Log4j容器深入探究
查看>>
记glide框架使用中所遇到的问题
查看>>
学习AOP之透过Spring的Ioc理解Advisor
查看>>
Jquery一个简单的注册验证
查看>>
SpringMVC基础_ControllerAdvice
查看>>
Toast还能显示图片你知道么?
查看>>
安卓三状态切换按钮TriStateToggleButton
查看>>