memset函数

memset是一个C/C++语言的初始化函数,用于将内存块设置为特定值。它按字节操作,适用于初始化内存,如数组和结构体。使用时需要注意值的范围(0-255)和内存大小,例如初始化整型数组应考虑字节数。对于包含数组的结构体,可能需要额外处理。
摘要由CSDN通过智能技术生成

memset 函数

memset 函数是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值,这个函数通常为新申请的内存做初始化工作。

memset()函数原型是extern void *memset(void *s,int c,size_t n)

s:指向要填充的内存块;

c:要被设置的值;

n:是要被设置该值的字符数;

返回类型是一个指向存储区s的指针。

memset函数在初始化处理时非常方便,但也有其局限性,比如要注意初始化数值,要注意字节数等等。当然,直接选择用for循环或while循环来进行初始化也是可以的,只不过memset更快捷一点。

memset函数是按照字节对内存块进行初始化,所以不能用它将int数组除初始化为0和-1以外的其他值(除非该值高字节和低字节相同)。其实c的实际范围在0-255,因为memset函数只能取c的后八位给所输入范围的每个字节。

下面的语句是错误的:

int a[4];
memeset(a,1,4);

得到的执行结果为

16843009 0 0 0

正确的语句应为

memset(a,1,16);//int所占内存为4字节的情况
memeset(a,1,sizeof(a));

那为什么呢?

数组a 是整型的,整型占据的内存大小为4Byte,而memset函数还是按照字节为单位进行赋值。

//初始化数组

char str[100];
memset(str,0,100);

//清空结构体类型的变量

typedef struct stu
{
  char name[20];
  int c;
}stu;
stu st1;
memeset(&st1,0,sizeof(stu));
stu st2;
memset(st2,0,sizeof(stu)*10);

如果结构体中有数组的话,还是需要对数组单独进行初始化处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值