Witam, czy ten fragment kodu poprawnie zwalnia pamiec z danego elementu?
if(tmp->next) //tmp->next to ten element ktory chcemy usunac
{
p=tmp->next;
tmp->next=p->next;
free(p);
}
z gory dzieki za pomoc
Witam, czy ten fragment kodu poprawnie zwalnia pamiec z danego elementu?
if(tmp->next) //tmp->next to ten element ktory chcemy usunac
{
p=tmp->next;
tmp->next=p->next;
free(p);
}
z gory dzieki za pomoc
Zaalokowałeś pamięć dla zmiennej p?
p i tmp to wskazniki
caly kod funkcji delete
node *delete_node(node *head, int val)
{
node *tmp=NULL;
node *p=NULL;
if (head->value==val)
{
p=head->next;
free(head);
head=p;
}
else
{
tmp=search_node(head,val);
if(tmp->next) //tmp->next to ten element ktory chcemy usunac
{
p=tmp->next;
tmp->next=p->next;
free(p);
}
else
printf("brak takiego elementu\n");
}
return head;
}
program dziala ok, tylko nie wiem jednego, czy zwalniam cala pamiec, ktora powinienem
IMHO tak ale zawsze możesz sprawdzić to przy użyciu debuggera.