-6
我有一個列表,我想從列表中刪除寄存器,比較人名。 這裏是功能刪除:strcmp(列表)的分段錯誤
void remove(char name[]){
if (pBegin!=NULL){
Nodo *pcopy;
if (!strcmp(name,pBegin->person.name)){
pcopy=pBegin;
pBegin=pBegin->pNext;
printf("REMOVED!\n");
free(pcopy);
}
else{
Nodo *pCurrent=pBegin;
Nodo *pPrevious=NULL;
while ((strcmp(name,pCurrent->person.name)) && (pCurrent!=NULL)){ // here is probably the error
pPrevious=pCurrent;
pCurrent=pCurrent->pNext;
}
if (pBegin==NULL)
printf("The name was not found!\n");
else{
pPrevious->pNext=pCurrent->pNext;
printf("REMOVED!\n");
free(pCurrent);
}
}
}
else
printf("empty list!\n");
}
對不起,大的帖子和視覺醜陋。這是我在這裏的第一篇文章,我是C新手,已經嘗試了一切,但無法解決這個錯誤。
有太多的代碼供我們挖掘。請調試你的程序,如果你無法修復它,用一個簡短的例子來演示這個問題。 StackOverflow不是一個調試服務! – Johnsyweb 2013-03-24 22:47:05
@Johnsyweb [ok] – 2013-03-24 22:50:08