由于strstr函数,我在此方法中有一个无限循环。是因为我将结构类型与字符类型匹配吗?
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;
}