#include <stdio.h>
int memcpy(void * desc, const void *str,size_t size)
{
if((desc == NULL) && (str == NULL)) //参数错误
return -1;
char *tmp1 = (char *)desc;
char *tmp2 = (char *)str;
int i = 0;
for(i = 0; i < size; i++) //拷贝
*tmp1++ = *tmp2++;
return 0;
}
int main(void)
{
int a[10] = {1,2,3,4,45,6,67};
int b[10];
int val = sizeof(a) / sizeof (char);
memcpy(b,a,val);
int i;
for(i = 0; i < 8; i++)
printf("b[%d] = %d\n",i,b[i]);
}
ubuntu12.04 32 bit 运行结果:
first@ubuntu:~/test/memcpy$ ./a.out
b[0] = 1
b[1] = 2
b[2] = 3
b[3] = 4
b[4] = 45
b[5] = 6
b[6] = 67
b[7] = 0