memset()函数与 bzero()函数的比较

1.、memset()函数原型是extern void *memset(void *buffer, int c, int count)        

buffer:为指针或是数组,

c:是赋给buffer的值,

count:是buffer的长度.

memset可以方便的清空一个结构类型的变量或数组

Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;

例:

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));


下面的代码用数组做参数传递给标准函数memset(),以让其将数组设置成全0:
    #include<mem.h>
    void main()
    {
     int ia1[50];
     int ia2[500];
     memset(iai,0,50*sizeof(int));
     memset(ia2,0,500*sizeof(int));
    }


  memset()的第一个实参是数组名,数组名作参数即数组作参数,它仅仅只是一个数组的起始地址而已。
  在函数memset()栈区,从返回地址往上依次为第1,2,3个参数。第1个参数中的内容是main()函数中定义的数组ia1的起始地址。第2个参数是给数组设置的值(0),第3个参数是数组的长度(50*2)。函数返回时,main()函数的数组中内容全置为0。

2、bzero() 会将内存块(字符串)的前n个字节清零,其原型为:void bzero(void *s, int n);
s为内存(字符串)指针,

n 为需要清零的字节数。

bzero()会将参数s 所指的内存区域前n 个字节,全部设为零值。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值