#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
void* my_memcpy(void *dest,const void *str,size_t num)//用void*接收方便任意类型拷贝
{
void* ret = dest;//保存dest的首地址
assert(dest && str);//保证数组的有效性,可不加
while(num--)
{
*(char*)dest = *(char*)str;//需强转,上面是void*
++dest;
++str;
}
return ret;
}
int main(int argc, char *argv[])
{
int arr1[] = {1,2,3,4,5};
int arr2[10] = {0};
my_memcpy(arr2,arr1,sizeof(arr1));
for(int i = 0;i < 5;i++)
{
printf("%d ",arr2[i]);
}
puts("");
return 0;
}
memcpy的实现
于 2022-08-25 22:01:37 首次发布