首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

【大家来找茬】不知道到这发个这样的帖子合不合适呀。诸位C/C++大牛们快来呀~

2014-01-12 
【大家来找茬】不知道到这发个这样的帖子合不合适呀。。。各位C/C++大牛们快来呀~~~~~~~~~呵呵,不过这个游戏还

【大家来找茬】不知道到这发个这样的帖子合不合适呀。。。各位C/C++大牛们快来呀~~~~~~~~~


呵呵,不过这个游戏还真没QQ游戏里的那个那么好玩~~~~
这样的,我贴出几段代码,上面有各个不同的功能,其中至少有一段代码存在漏洞,会导致程序陷入死循环或者什么的。

先说要求:只能使用基本操作去实现string.h库中的一些函数功能。前提是不能包含string.h。

代码片段一: 获取字符串长度 

散粉。。。。

[解决办法]

void strcopy(char **target, char *source) 
{
    if(!source){
        return;
    }
    unsigned length = strlenth(source);
    *target = (char*)malloc(length + 1); //这里要改
    if(*target){
        return;
    }
    unsigned int i = 0;
 
    for(; i<length; ++i){
        (*target)[i] = source[i];


    }
    (*target)[i] = '\0';
}



先修正一个在看下面的
[解决办法]
又是一段明显初学者写的代码~

int strcompare(char *s, char *t)  
{
     
    if(!s && !t){ 
        return 0;
    }
    if(s && !t){
        return 1;
    }
    if(!s && t){
        return -1;
    }
    while(*s 
[解决办法]
 *t){ //这个条件是错误滴,*s && *t
        if(*s > *t){
            return 1;
        }else if(*s < *t){
            return -1;
        }
        s++;
        t++;
    }

    //可不能直接返回0
    if (*s)
       return 1;
    else if (*t)
       return -1;
    else
       return 0;
}

热点排行