Я пытаюсь вставить данные в двойной связанный список после указанных данных и отображает ошибку сегмента.Ошибка сегментации при проверке данных указателя
void dllinsertafter(struct node **head,int data,int data1)
{
struct node *temp,*newnode;
newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=data;
temp=*head;
while ((temp->data)!=data1)
temp=temp->next;
newnode->next=temp->next;
temp->next->prev=newnode;
newnode->prev=temp;
temp->next=newnode;
}
Понятия не имею, почему ошибка в то время (TEMP-> данные! = Data1) .Отель структура используется общий для двойных связанных списков.
Можно дойти до конца списка и не имеет 'данных = 25', поэтому' temp' получает назначение NULL (тем более, что вы никогда не проверяете значение «temp»). Segfault прибудет, если вы попытаетесь его использовать. – AntonH
Возможно, вы захотите взглянуть на https://github.com/raymontag/Linked-Lists-in-C. Я написал это давным-давно, и мои знания C были не очень хорошими, но они работают и могут помочь вам , –