|
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...
|