- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
- void _Memmove(void *pDst,const void *pSrc, size_t size)
- {
- if(NULL == pDst || NULL == pSrc || size == 0)
- return;
- //内存重叠
- if((pSrc<pDst) && ((char*)pSrc+size > pDst))
- {
- char *pstrSrc= (char *)pSrc + size -1;
- char *pstrDst = (char *)pDst + size -1;
- //从尾部拷贝
- while(size--)
- *pstrDst -- = *pstrSrc--;
- }
- else
- {
- char *pstrSrc= (char *)pSrc ;
- char *pstrDst = (char *)pDst ;
- //没有就正常拷贝
- while(size--)
- *pstrDst++ = *pstrSrc++;
- }
- }
复制代码
memmove考虑的内存重叠
memmcpy没有考虑 |
|