hello everybody
i wanna creat a linked list,and the list is contained in a big loop.and i'm supposed to create new DIFFERENT nodes containg different information that can be accessed later during each iteration of the loop.i tried to dynamically allocate a new node each iteration and save the data and then delete the pointer.but strangely in the next iteration when i allocate the pointer again,it points to the previous node and overwrites its data so eventually i'll have one node only!!!..can u plz tell me why??
here's my code..
thanks alot...Code:struct user * f; //front pointer f=NULL; struct user * r; //rear pointer r=NULL; struct user * temp; //the temporary pointer that i use to allocate temp=NULL; int back; back=1; while(back==1) { if(f==NULL) //first node to be added { temp=(struct user *)malloc(sizeof(struct user)); //user is my structure temp->link=NULL; //the link field to the following node stpcpy((temp->data1),input1); stpcpy((temp->data2),input2); f=temp; r=f; free(temp); } else { temp=(struct user *)malloc(sizeof(struct user)); temp->link=NULL; stpcpy((temp->data1),input1); stpcpy((temp->data2),input2); r->link=temp; r=temp; free(temp); } }
Last edited by v0id; 06-17-2007 at 09:38 PM. Reason: Added code-tags.
I have made a complete example of using Linked List, that you may find interesting. You can eventually use it to see how it can be done.
You can find it on my homepage here:
v0id.dk
and a direct link here:
http://v0id.dk/fv/code/c/linked_list.c
thanks alot void,your program was really helpful to me..
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks