由于strstr函数,我在此方法内有一个无限循环。是因为我将struct类型匹配为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
最佳答案
您错过了增加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;
}