您的位置:首页 > 其它

内存拷贝实现

2014-10-21 17:19 232 查看
void* _memove(void* dest,const void*src,size_t count)
{
assert((dest != NULL) && (src != NULL));
assert(count>0);

char* psrc = (char*)src;
char* pdest = (char*)dest;

//检查是否有重叠问题
if(pdest < psrc)
{
//正向拷贝
while(count--)
*pdest++ = *psrc++;
}
else if(psrc < pdest)
{
//反向拷贝
psrc = psrc + count;
pdest = pdest + count;
while(count--)
*pdest-- = *psrc--;
}

return dest;
}

void* _memcpy(void* dest,const void* src,size_t count)
{
assert((dest != NULL) && (src != NULL));
assert(count > 0);

char* psrc = (char*)src;
char* pdest = (char*)dest;
while(count --)
*pdest++ = *psrc++;

return dest;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: