當我嘗試運行我的代碼的刪除功能時,它導致分段錯誤。我不知道我的功能有什麼問題。 任何人都可以修改我的代碼並更正它嗎?刪除循環雙向鏈表上的字符串
void deleteNode(contact **C){
contact *temp = NULL;
contact *ptr;
int count=0;
printf("Delete:\n");
printf("Name: ");
scanf("%s", temp->name);
ptr = (*C);
if((*C) == NULL){
printf("The list is EMPTY.");
} else{
do{
if(temp->name == 0){
count++;
break;
}
ptr = ptr->next;
}while(ptr != (*C));
if(count != 0){
if((*C)->prev == (*C)){
temp = ptr;
(*C) = NULL;
free(temp);
} else{
if(ptr == (*C)){
temp = ptr;
ptr->prev->next = ptr->next;
ptr->next->prev = ptr->prev;
(*C) = ptr->next;
free(temp);
} else if(ptr == (*C)->prev){
temp = ptr;
ptr->next->prev = ptr->prev;
ptr->prev->next = ptr->next;
free(temp);
} else{
temp = ptr;
ptr->prev->next = ptr->next;
ptr->next->prev = ptr->prev;
free(temp);
}
}
} else{
printf("The name is not in the list.");
}
}
}
任何幫助,將不勝感激。
提供完整(但最小)的代碼。 –