#include <stdio.h>
#include <assert.h>
void* my_memcpy(void* dest, const void* src, size_t num)
{
assert(dest && src);
void* ret = dest; //记录首地址
while (num--)
{
*(char*)dest = *(char*)src;//进行复制
dest = (char*)dest + 1;//因为传参类型不同,为了保证每次只增加一个字节,所以只能使用参数 + 1
src = (char*)src + 1;
}
return ret;//复制完成,返回首地址即可
}
int main(void)
{
int arr2[20] = { 1,2,3,4,5,6,7 };
int arr1[20] = { 0 };
int sz = sizeof(arr1) / sizeof(arr1[0]);
my_memcpy(arr1, arr2, 30);
for (int i = 0; i < sz; i++)//打印复制结果
{
printf("%d ", arr1[i]);
}
return 0;
}