#include <stdio.h>
#include <assert.h>
#include <memory.h>
void* my_memcpy(void* dest, const void* src, size_t num)
{
assert(dest && src);
while (num--)
*((char*)dest)++ = *((char*)src)++;
return dest;
}
int main()
{
int arr1[] = { 1,2,3,4,5 };
int arr2[5] = { 0 };
my_memcpy(arr2, arr1, sizeof(arr1));
memcpy(arr2, arr1, sizeof(arr1));
return 0;
}
整型数组拷贝是对的,但不确定其他类型数据是不是都可以
不考虑内存重叠的情况
当前行有效,更确切的说是当前变量有效,即使在同一行的相同变量每个都需要类型转换。
代码没看出问题,建议最好还是用库给的memcpy,因为大批量的数据拷贝的时候,库的 memcpy 可能会利用 DMA 来复制,而自己写的总是1个1个的复制,效率上会差很多。