由于strstr函数,这个方法中有一个无限循环。是因为我将结构类型与char类型匹配吗?
car* find(char* type){
car* stringCurr = list_head();
while(stringCurr != NULL){
if(strstr(stringCurr->info, type)){ //This line
return stringCurr;
}
}
return NULL;
}结构:
typedef struct Machine{
char info[128];
struct Machine* next;
}car;编辑:
目标是创建一个搜索函数,如果在列表中找到对象,则返回NULL。
发布于 2020-01-01 16:53:22
您错过了增量stringCurr。您需要在while循环中执行类似于stringCurr = stringCurr->next的操作。
car* find(char* type){
car* stringCurr = list_head();
while(stringCurr != NULL){
if(strstr(stringCurr->info, type)){ //This line
return stringCurr;
}
stringCurr = stringCurr -> next;
}
return NULL;
}https://stackoverflow.com/questions/59554305
复制相似问题