void * MyMemcpy(void *memDest,const void *memSrc,size_t size)
{
assert((memDest!=NULL)&&(memSrc!=NULL)&&size > 0);
char *tempDest=static_cast<char*>(memDest);
const char *tempSrc=static_cast<const char*>(memSrc);
if((tempDest>tempSrc)&&(tempDest<tempSrc+size))
{
for(size_t i=size-1;i!=-1;--i)
tempDest[i]=tempSrc[i];
}
else
{
for( size_t i=0;i<size;++i)
tempDest[i]=tempSrc[i];
}
return memDest;
}