#include<stdio.h>
#include<stdlib.h>
typedef unsigned int uint;
void* my_memmove(void* p,const void* q,uint len)
{
void*ret=p;
char* p1=(char*)p;
char* q2=(char*)q;
if((p1>q2)&&(p1<q2+len))
{
while(len--)
{
*(p1+len-1)=*(q2+len-1);
}
}
else
{
while(len--)
{
*p1=*q2;
p1++;
q2++;
}
}
return ret;
}
int main()
{
int s[]={1,2,3,4,5,6};
int i=0;
my_memmove(s+3,s+2,3*sizeof(int));
for(i=0;i<sizeof(s)/sizeof(s[0]);i++)
{
printf("%d ",s[i]);
}
system("pause");
return 0;
}
本文出自 “liveyoung” 博客,转载请与作者联系!