memcpy函数

memcpy这个函数我们用的很常见。
但是函数,我们需要对其理解透彻之后才能更好的使用。
会用memcpy的很多,我相信还是有同学不知道memcpy的漏洞,那就是memcpy在拷贝有重复内存的时候可能会出错!

void* memcpy(void *dst, const void *src, size_t count)      
{       
    assert( (dst != NULL) && (src != NULL) );      

    unsigned char *pdst = (unsigned char *)dst;      
    const unsigned char *psrc = (const unsigned char *)src;      

    //防止内存重复 
    assert(!(psrc<=pdst && pdst<psrc+count));      
    assert(!(pdst<=psrc && psrc<pdst+count));      

    while(count--)      
    {      
        *pdst = *psrc;      
        pdst++;      
        psrc++;      
    }      
    return dst;      
}   

你可能感兴趣的:(memcpy函数)