[微软面试100题] memmove

题目

用C 语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src 所指的内存内容前n 个字节到dest 所指的地址上。

代码

void * memmove(void *dest, const void *src, size_t n)
{
    if (dest==NULL || src == NULL) error(“NULL pointers”);
    byte * psrc = (byte*)src;
    byte * pdest = (byte*)dest;
    int step = 1;
    if (dest < src + n)
    {
        psrc = (byte*)(src+n-1);
        pdest = (byte*)(dest+n-1);
        step = -1;
    }
    for (int i=0; i



你可能感兴趣的:(数据结构与算法,面试题)