Большая часть кода работает, но когда я пытаюсь удалить последний элемент своего списка, и я его печатаю, я вижу на его месте некоторые данные мусора, что я здесь делаю неправильно? Может ли кто-нибудь указать на мою ошибку?Удаление узла в связанном списке
void DeleteClient2(struct client *temp,struct client **head)
{ struct client *prev=*head;
struct client *current = *head;
struct item *currentitem = (*head)->item_data,*save;
if(temp== *head)
{
while(currentitem != NULL)
{
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
free(temp);
temp->item_data = NULL;
(*head) = (*head)->next;
}
else
if(temp->next == NULL)
{
while(currentitem != NULL)
{
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
temp->item_data = NULL;
free(temp);
}
else
if(temp != *head && temp->next != NULL)
{
while(prev->next != temp)
{
prev=prev->next;
}
prev->next = temp->next;
while(currentitem != NULL)
{
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
temp->item_data = NULL;
free(temp);
temp=temp->next;
}
}
первый отступа ваш код правильно. –