В функции del_car()
if(temp->no== value)
{
head=temp->next;
head->prev=NULL;
}
Если есть только припаркованный автомобиль, то действительными являются только head
, а head->next
и head->prev
будут NULL
. Теперь
head = temp->next; // head becomes NULL here
head->prev = NULL; //you are dereferencing a NULL pointer and hence the seg. fault
В этом состоянии следует выполнить установку head = NULL
.
Кроме того, если припарковано больше автомобилей, условие равно while(temp!=NULL)
, но если автомобиль найден , тогда вам нужно разбить l oop, чтобы temp
не увеличивался без необходимости. Добавьте break;
после flag=true;
.