void * memset(void *dst, int val, size_t count)
将dst所指向的某一块内存中的前count个 字节的内容全部设置为val指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。
简单来说就是把dst所指内存区域的前count个字节设置为val。返回指向dst的指针。
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#define N 5
void * my_memset(void *dst, int val, size_t count)
{
//把val传给*dst时两个变量类型要相同,需要用到强制类型转换
assert(dst); //这里需要检验dst的有效性
char* ret = (char*)dst;
while (count--)
{
*ret++ = (char)val;
}
return dst;
}
int main()
{
int arr[N];
int i ;
my_memset(arr,0,N*sizeof(int));
for (i = 0; i < N; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}
转载于:https://blog.51cto.com/iynu17/1715558