问题描述
已知memcpy的函数为: void* memcpy(void* dest , const void* src , size_t count)其中dest是目的指针,src是源指针。不调用c++/c的memcpy库函数,请编写memcpy。
代码
void *memcpy(void *dest,const void *src,size_t count)
{
//安全检查
assert((dest != NULL) && (src != NULL));
unsigned char * pDest = (unsigned char *)dest;
const unsigned char * pSrc = (const unsigned char *)src;
//防止内存重复
assert(!(pDest <= pSrc && pSrc < pDest+count));
assert(!(pSrc <= pDest && pDest < pSrc+count));
while (count--) {
*pDest = *pSrc;
pDest++;
pSrc++;
}
return dest;
}