memcpy函数

来源:互联网 发布:jquery 数组如何清空 编辑:程序博客网 时间:2024/06/15 19:48
<pre name="code" class="cpp">//方法一:不考虑内存重叠void* memcpy(void *dest, void *src, size_t size){    if(dest == nullptr || src == nullptr)        return nullptr;    void *result = dest;         while(size--)    {        *(char*)dest = *(char*)src;        dest = (char*)dest+1;        src = (char*)src+1;    }         return result;} //方法二:考虑内存重叠(类似于memmove)void *memcpy(void *dest, void *src, size_t size){    if(dest == nullptr || src == nullptr)        return nullptr;    void *result = dest;     if(dest < src || (char*)src+size < (char*)dest)//没有内存重叠    {        while(size--)        {            *(char*)dest = *(char*)src;            dest = (char*)dest+1;            src = (char*)src+1;        }    }    else//有内存重叠    {        dest = (char*)dest+size-1;        src = (char*)src+size-1;        while(size--)        {            *(char*)dest = *(char*)src;            dest = (char*)dest-1;            src = (char*)src-1;        }    }    return result;}


                                             
0 0
原创粉丝点击