C 搜索列表时出现运行时错误

C 搜索列表时出现运行时错误,c,linked-list,runtime-error,C,Linked List,Runtime Error,又是我。我的搜索程序快完成了。但是,在单链表中搜索时出现运行时错误。它只发生在我使用范围搜索时。谢谢你的帮助。这是相关代码 int casearchrange(LIST *list,STUDENT **pPre,STUDENT **pLoc,int upper,int lower){ *pLoc = list->head; for (;*pLoc!=NULL && lower>(*pLoc)->ca;){ *pPre = *pLo

又是我。我的搜索程序快完成了。但是,在单链表中搜索时出现运行时错误。它只发生在我使用范围搜索时。谢谢你的帮助。这是相关代码

int casearchrange(LIST *list,STUDENT **pPre,STUDENT **pLoc,int upper,int lower){
    *pLoc = list->head;
    for (;*pLoc!=NULL && lower>(*pLoc)->ca;){
        *pPre = *pLoc;
        *pLoc = (*pLoc)->next;
    }
    if (*pLoc==NULL)
        return 0;
    else {
        for (;(*pLoc)->ca<upper&&*pLoc!=NULL;)
            if ((*pLoc)->ca>=lower&&(*pLoc)->ca<=upper){
                printf("%s\n%d  | %-18s|  %0.1f  |  %0.1f",RESULT,(*pLoc)->sid,(*pLoc)->name,(*pLoc)->ca,(*pLoc)->exam);
                *pLoc=(*pLoc)->next;
            }
            fflush(stdin);getch();
            return 1;
        }
}
int casearchrange(列表*列表,学生**pPre,学生**pLoc,整数上限,整数下限){
*pLoc=列表->标题;
对于(;*pLoc!=NULL&&lower>(*pLoc)->ca;){
*pPre=*pLoc;
*pLoc=(*pLoc)->下一步;
}
如果(*pLoc==NULL)
返回0;
否则{
对于(;(*pLoc)->caca>=lower&&(*pLoc)->casid,(*pLoc)->名称,(*pLoc)->ca,(*pLoc)->考试);
*pLoc=(*pLoc)->下一步;
}
fflush(stdin);getch();
返回1;
}
}
线路中的测试

for (;(*pLoc)->ca<upper&&*pLoc!=NULL;)
在线测试

for (;(*pLoc)->ca<upper&&*pLoc!=NULL;)

使用调试器。当崩溃发生时,它将停止,您可以准确地确定问题所在的行,还可以检查变量以确定哪一行可能是崩溃的原因。两个可能的原因是
NULL
指针或未初始化的指针。我将尝试使用它,谢谢。使用调试器。当崩溃发生时,它将停止,您可以准确地确定问题所在的行,还可以检查变量以确定哪一行可能是崩溃的原因。两个可能的原因是
NULL
指针或未初始化的指针。我将尝试它。谢谢。它有效,非常感谢。它有效,非常感谢。