linux下C语言my_memcopy和my_strcpy实现

来源:互联网 发布:淘宝官网东西是真的吗 编辑:程序博客网 时间:2024/05/21 17:26
/* 实现内存复制的函数 */void* my_memcpy(void* dest, const void* src, int len){    if(dest == NULL || src == NULL || len < 0)    {        return NULL;    }    void *ret = dest;    char* p_dest = (char*)dest;    char* p_src = (char*)src;    /* 判断内存地址是否重合,如果内存重合就从高位开始拷贝 */    if(p_dest > p_src && p_src+len > p_dest)    {        p_dest = p_dest + len - 1;        p_src = p_src + len - 1;    while(len--)        {            *p_dest-- = *p_src--;        }    }    /* 如果没有重合就从低位开始拷贝 */    else     {        while(len--)        {            *p_dest++ = *p_src++;        }    }    return ret;}char *my_strcpy(char *strDest, const char *strSrc) {     char *ptr;     if(strDest == NULL || strSrc == NULL)         exit(-1);     ptr = strDest;     while(*strSrc != '\0')     {         *strDest++ = *strSrc++;     }     *strDest = '\0';     return ptr; }

0 0
原创粉丝点击