memmove可重叠

void* __cdecl mmemmove(void* dst,const void* src,size_t size) { assert(NULL != dst && NULL != src); char* memTo=(char*)dst; const char* memFrom=(const char*)src; if(memTo != memFrom) { if(memTo>memFrom){//目标地址在源地址后面 for(size_t i=size-1;i>=0;i--)//从后往前逐个拷贝 { *(memTo+i)=*(memFrom+i); } } else{//目标地址在源地址前面 for(size_t i=0;i<size;i++)//从前往后逐个拷贝 { *(memTo+i)=*(memFrom+i); } } } return memTo; }

你可能感兴趣的:(null,DST)