读书人

【大家来找茬】不知道到这发个这样的帖

发布时间: 2014-01-12 00:03:16 作者: rapoo

【大家来找茬】不知道到这发个这样的帖子合不合适呀。。。各位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;
}

读书人网 >C语言

热点推荐