memmove函数的实现
我们查找函数的信息
具体实现步骤如下
代码实现如下
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
#include <string.h>
void* my_memmove(void* dst, const void* src, size_t num)
{
assert(dst && src);
void* ret = dst;
if (dst < src)
{
while (num--)
{
*(char*)dst = *(char*)src;
++(char*)dst;
++(char*)src;
}
}
else
{
dst = (char*)dst + num - 1;
src = (char*)src + num - 1;
while (num--)
{
*(char*)dst = *(char*)src;
--(char*)dst;
--(char*)src;
}
}
return ret;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
my_memmove(arr, arr + 2, 16);
return 0;
}