void* my_memcpy(void* dest,const void* src,size_t num)
{
assert(dest && src);
char*p = (char*)dest;//因为dest是void*所以不能直接解引用和加加(运算)所以可以先把他赋值给一个char*
//然后逐字节赋值。
char*q = (char*)src;
while (num--)//num 为多少,就能循环几次。
{
*p = *q;
p++;
q++;
}
return dest;
}
int main()
{
int i = 0;
int arr1[10] = { 0 };
int arr2[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int* p = (int*) my_memcpy(arr1, arr2, sizeof(arr2));
int sz = sizeof(arr1) / sizeof(arr1[0]);
for (i = 0; i < sz; i++)
{
printf("%d ", p[i]);
}
return 0;
}
09-18
577
09-28
3884
07-17
1951
10-17
452
05-21
2332
10-10
914