my_memmove
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
/*#include<stdlib.h>*/
#include<string.h>
void *my_memmove(void *dest,const void *src,size_t n);
int main(int argc,char *argv[]){
int arr[]={1,2,3,4,5,6,7,8};
size_t len=sizeof(arr)/sizeof(*arr);
my_memmove(arr+len/2,arr+2,len/2*sizeof(*arr));
fputs("arr is:",stdout);
for(size_t i=0;i<len;printf("%d ",arr[i]),i++);
fputs("\b.\n",stdout);
return 0;}
//
void *my_memmove(void *dest,const void *src,size_t n){
/*拷贝法
char *temp=(char *)calloc(1,n);
temp=(char *)src;
for(;n--;*((char *)dest+n)=*(temp+n));
free(temp);
*/
/*方向法*/
if(dest<=src||dest>=(char *)src+n)
for(size_t i=0;i<n;*((char *)dest+i)=*((char *)src+i),i++);
else
for(;n--;*((char *)dest+n)=*((char *)src+n));
return dest;}