memmove和memcpy。
src和dst指向的区域重叠,memmove仍可以正确处理

void *memmove(void *dst, const void *src, size_t count)
{
    char *tmp, *s;
    if (dst <= stc)
    {
        tmp = (char *)dst;
        s = (char *)src;
        while (count --)
        {
            *tmp++ = *s++;
        }
    }
    else
    {
       tmp = (char *)dst + count;
       s = (char *)src + count;
       while (count--)
       {
            *--tmp = *--s;
       }
    }
    return tmp;
}