From: Jan M. <jan...@vo...> - 2007-06-08 14:45:49
|
Hello, I would like to ask about some things in linked list I try to write. It looks like: struct s { int id; char *name; struct s *next; }; int main () { struct s *front = NULL; /*the front of a list */ int i = 1; char *name; while (1) { gets (name); if (strlen(name) == 0) break; in_list (&front, i, name); i++; } return 0; } void in_list (struct s **q, int in_id, const char *in_name) { struct s*member, *temp; member = malloc (sizeof (struct s)); member -> name = malloc (strlen (in_name) +1); member-> id = in_id; strcpy (member -> name, in_name); member -> next = NULL; /* it will be the last member in the list */ if (q == NULL) /* empty list */ { q = member; q -> next = NULL; } else { temp = q; temp -> next = q -> next; while (temp -> next != NULL) temp = temp -> next; /* looking for the last member in the list */ temp ->next = member; /* the last member is no more the last one */ } } Should I allocate the space for temp and temp -> next when I am putting an adress from member to temp? So should it looks like: temp = malloc ...; temp = member; ??? Thanks for your answer. Jan Mura jan...@vo... |