memset:
头文件:#include在<string.h>
原型: void *memset(void *s, int c, size_t n);
将已开辟内存空间的s所指向的每一块内存中的每一个字节全部设定为c为ASCII码!!!
The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c
原型函数:
void* memset(void* s, int c, size_t n){
unsigned char* p = (unsigned char*) s;
while (n > 0) {
*p++ = (unsigned char) c;
--n;
}
return s;
}
1, memset常被用来做初始化数组
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char p[5];
for(i = 0; i<5;i++){
printf("%c\n", p[i]);
}
return 0;
}
运行结果:
可以看到我们的中的p[5]数组没有初始化的话,会得到一些奇怪的东西,则可能会导致我们程序的错误运行,如果我们不初始化的话!!!
为了避免这种情况,我们可以加入:
memset(p, '0', strlen(p));
for(i = 0; i<5;i++){
printf("%c\n", p[i]);
}
这样,我们看的话,就可以得到正确的结果了,
但是要注意的是,memset的第二个参数是char类型的