模拟实现memmove
#include<stdio.h>
#include<assert.h>
//my_memmove
void * my_memmove(void* dest, const void*src, size_t num)
{
assert(dest);
assert(src);
if (dest<src)
{
//前->后
while (num--)
{
*(char *)dest = *(char *)src;
dest = (char *)dest + 1;
src = (char *)src + 1;
}
}
else
{
//后->前
while (num--)
{
*((char *)dest + num) = *((char *)src + num);
}
}
}
int main()
{
char arr[10] = "abcdefg";
char arr0[10] = "abcdefg";
char arr1[10] = { 0 };
my_memmove(arr + 3, arr, 4);
my_memmove(arr1, arr0, 4);
printf("内存覆盖情况:%s\n", arr + 2);
printf("正常情况:%s\n", arr1);
return 0;
}