memmove函数实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
void* Memmove(void* dest, const void* src, size_t num) {
assert(NULL != src && NULL != dest);
const char* psrc = (const char*)src;
char* pdest = (char*)dest;
if (pdest <= psrc || pdest >= psrc + num)
{
while (num--)
{
*pdest++ = *psrc++;
}
}
else
{
pdest = pdest + num - 1;
psrc = psrc + num - 1;
while (num--)
{
*pdest-- = *psrc--;
}
}
return dest;
}
int main() {
int arr1[4] = { 0 };
int arr2[4] = { 1,2,3,4 };
Memmove(arr1, arr2, 16);
for (int i = 0; i < 4;++i) {
printf("%d", arr1[i]);
}
printf("\n");
system("pause");
return 0;
}