memset为内存填充函数,包含在<string.h>头文件中,可以用它对一片内存空间进行初始化,其原型为
|
void *memset(void *s, int v, size_t n);
|
英文释义如下:
Copies the value v (converted to type unsigned char) to the first n bytes pointed to by s; returns s.
这里s可以是数组名,也可以是指向某一内在空间的指针;v为要填充的值;n为要填充的字节数,通常为sizeof(s);
使用memset时要注意的是,memset是逐字节进行填充,所以s一般为char *型。对于其它类型的s,可以填充的值有两个,0和-1。这是因为计算机中用二进制补码表示数字,0和二进制补码为全0,-1的二进制补码为全1。如果要初始化为其它的值,可以用一个for循环,如下:
|
for (int i=0; i<n; i++) { s[i] = v; }
|