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);//二维数组