函数原型
void *memset(void *s, int c, size_t n);
函数功能
将以s为首的存储空间前n字节空间全部替换为参数c指定的数据。
返回值
更新后的首地址s。
头文件
#include <string.h>
为什么记录这个函数呢?它很好用啊有木有!以前初始化数组很麻烦有木有!用这个函数duang的一下就搞定了!废话少说,上测试代码。
#include <memory.h> #include <stdio.h> void main( void ) { char buffer[] = "This is a test of the memset function"; printf( "Before: %s\n", buffer ); memset( buffer, '*', sizeof(buffer)-1 ); //这里buffer的大小-1是为了避免将字符串的结尾‘\0’也变成* printf( "After: %s\n", buffer ); }
很方便有木有?
上面是字符串,下面再来一个整形数组的
#include <memory.h> #include <stdio.h> void main( void ) { int i = 0; int a[10]; memset(a,0,sizeof(a)); while(i < 10) { printf("a[%d] = %d\n",i,a[i] ); i++; } }
更叼的,开辟一块共享内存,初始化
#include <memory.h> #include <stdio.h> #include <sys/shm.h> #include <unistd.h> void main( void ) { char *p_addr; int shmid; if((shmid = shmget(0x1234,5,666|IPC_CREAT))== -1) //创建 exit(1); p_addr = shmat(shmid,0,0); //映射 memset(p_addr,'\0',1024); //初始化 }
That's all!如果有疑问或错误,欢迎指出。