C++初始化函数memset与fill函数区别

API文档

memset

void * memset ( void * ptr, int value, size_t num );

Fill block of memory

Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).

Parameters

ptr

Pointer to the block of memory to fill.

value

Value to be set. The value is passed as an int, but the function fills the block of memory using the unsigned char conversion of this value.

num

Number of bytes to be set to the value.
size_t is an unsigned integral type.

Return Value

ptr is returned.

参数含义

参数名称参数含义
ptr内存块的地址(起始位置)
value要填充的内容
num要填充的内存块的大小

memset函数:

是按照字节来填充指定内存块,返回一个指针,头文件<cstring>

由于是按照字节来赋值,所以memset一般适用于0、-1的赋值,因为0000 0000 0000 0000 = 0,以及最大值0x3f也可以。

但如果是其它值,例如赋值1,(int型时)每4位开始填充,结果为0001 0001 0001 0001 0001 0001 0001 0001(int最大32位字节) =  16843009

用法:

memset(mat, 0, sizeof(mat);   //一维数组、二维数组

fill函数:

按照单元来赋值,返回当前填充字符,头文件<algorithm>

fill函数可以初始化任何值

用法:

fill(mat, mat + size, val);    //一维数组
fill(mat[0], mat[0] + size * size, val);//二维数组

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值