#include <stdio.h>
#include <assert.h>
#include <string.h>
char* my_memmove(char* dst,char* src, int len)
{
char* d = dst + len;
char* s = src + len;
assert(dst && src);
if (src<dst && s>dst) //从后面拷贝<内存重叠的一种情况>
{
while(src < s)
{
*d-- = *s-- ;
}
}
else //从前面拷贝<剩余3中情况>
{
while(*dst++ = *src++ );
}
}
int main()
{
char arr[] = "abcd1234";
char brr[] = "12335798709";
int len = strlen(arr);
my_memmove(brr,arr,len);
printf("%s \n",brr);
return 0;
}
模拟实现memmove
最新推荐文章于 2023-03-18 15:15:41 发布