Does structure order matter?
- From: "Brian Dude" <noSpam@xxxxxxxxxxx>
- Date: Sun, 22 Jan 2006 14:44:36 -0600
Hello, I've been quite comfortable using linked list for a while now
without much hassle, but lately I've been getting problems from unexpected
places. I'm working on a graphing utility program, and to allow multiple
functions to be entered I figured the best way would be with a linked list:
struct List{
int color; /*The color it will be when drawn*/
int index; /*It's index: Y1, Y2, etc...*/
char Y[76]; /*The function itself*/
struct List *prev;
struct List *next;
}*current,*first,*hold,*last;
And I use a switch to process user input...
(Last is the last node before NULL and hold is a general placeholder)
switch(r){
case INSERT: /*When the Insert key is pressed*/
/*Do some graphics related stuff*/
/*Add a node to the end of the list*/
last->next=malloc(sizeof(struct List));
if(last->next==NULL){
puts("Cannot allocate function memory.");
exit(1);
}
hold=last;
last=last->next;
last->prev=hold;
last->next=NULL;
last->color=hold->color+1;
last->index=hold->index+1;
/*More graphics stuff*/
ggets(last->Y,76); /*<-My own string input function*/
/*More graphics stuff*/
break;
>From the above, I get errors. Running through the list is fine from first
to last but from last to first it points to garbage. But I noticed
everything seems to run fine if I put the:
last->prev=hold;
last->next=NULL;
after the ggets() statement. It's really confusing me as to why. Or is this
a different problem entirely that I may have overlooked?
I greatly appreciate any input.
Brian Dude
.
- Follow-Ups:
- Re: Does structure order matter?
- From: Default User
- Re: Does structure order matter?
- From: CBFalconer
- Re: Does structure order matter?
- From: Vladimir S. Oka
- Re: Does structure order matter?
- Prev by Date: Re: c.l.c wiki update
- Next by Date: Re: How to determine the way data is stored in memory?
- Previous by thread: Endianness (again)
- Next by thread: Re: Does structure order matter?
- Index(es):
Relevant Pages
|