#include<stdio.h>
void *my_mememove(void *dest,void *src,size_t count)
{
char *pdest=(char *)dest;
char *psrc=(char *)src;
char *ret=(char *)pdest;
if(pdest>psrc && pdest<psrc+count)
{
while(count--)
{
*(pdest+count)=*(psrc+count);
}
}
else
{
while(count)
{
*pdest++=*psrc++;
count--;
}
}
return ret;
}
int main()
{
int i;
int a[]={0,1,2,3,4,5,6};
int b[]={0,1,2,3,4,5,6};
my_mememove(a+3,a,16);
for(i=0;i<7;i++)
{
printf("%d ",a[i]);
}
printf("\n");
my_mememove(b,b+3,16);
for(i=0;i<7;i++)
{
printf("%d ",b[i]);
}
return 0;
}