CurrentElement->next = CurrentElement->next->next (UNDEFINED?)
From: Deniz Bahar (deniz.bahar_at_gmail.com)
Date: 03/08/05
- Next message: \(ProteanThread\): "Re: stdio.h ?"
- Previous message: \(ProteanThread\): "Re: stdio.h ?"
- Next in thread: Quentarez: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Reply: Quentarez: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Reply: Andrey Tarasevich: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 8 Mar 2005 14:26:21 -0800
Hi,
I'm working with a single linked list and want to delete elements by
searching through the list (starting form the HEAD) then finding the
element, then doing the following:
NewElement = CurrentElement->next;
CurrentElement->next = NewElement->next->next;
free(NewElement);
Does the double ->next invoke undefined behaviour (sequence points
etc)?
========
The full function follows:
========
typedef struct ElementTag Element;
extern Element *NewElement;
extern Element *CurrentElement;
extern Element *HeadElement;
/* Finds and deletes person- returns 1, returns 0 for failure) */
int
FindDeletePerson(const char *name)
{
if(!strcmp(HeadElement->Person.name, name))
{
NewElement = HeadElement->next;
free(HeadElement);
HeadElement = NewElement;
return 1;
}
else
{
CurrentElement = HeadElement;
while(CurrentElement->next)
{
if(!strcmp(CurrentElement->next->Person.name, name))
{
NewElement = CurrentElement->next;
CurrentElement->next = NewElement->next->next;
free(NewElement);
return 1;
}
CurrentElement = CurrentElement->next;
}
}
return 0;
}
- Next message: \(ProteanThread\): "Re: stdio.h ?"
- Previous message: \(ProteanThread\): "Re: stdio.h ?"
- Next in thread: Quentarez: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Reply: Quentarez: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Reply: Andrey Tarasevich: "Re: CurrentElement->next = CurrentElement->next->next (UNDEFINED?)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]