写了一个memset函数,仅供参考:
#include <stdio.h>
#include <string.h>
void* mymemset(void* buffer,int c,int size);
struct TEST
{
int m;
char n;
float g;
struct TEST *t;
double d;
};
int main(void)
{
int arr[] = {1,2,3,4,5};
struct TEST s;
int i = 0;
char *cp;
printf("After execute memset:\n");
memset(&s,0,sizeof(s));
printf("%d %c %f %p %lf\n",s.m,s.n,s.g,s.t,s.d);
cp = (char*)memset(arr,8,sizeof(arr));
for (;i < 5;i ++)
{
printf("%f ",*cp++);
}
putchar('\n');
printf("After execute mymemset:\n");
mymemset(&s,0,sizeof(s));
printf("%d %c %f %p %lf\n",s.m,s.n,s.g,s.t,s.d);
cp = (char*)mymemset(arr,8,sizeof(arr));
for (i = 0;i < 5;i ++)
{
printf("%f ",*cp++);
}
getchar();
return 0;
}
void* mymemset(void* buffer,int c,int size)
{
if (buffer == NULL)
{
printf("Point Exception!\n");
getchar();
exit(0);
}
else
{
char* bptr = (char*)buffer;
int i = 0;
for(;i < size;i ++)
{
*bptr ++ = c;
}
return buffer;
}
}