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; }