diff --git a/tree.c b/tree.c --- a/tree.c +++ b/tree.c @@ -20,13 +20,11 @@ { int i; - T *t; - T *actual; - T *first = NULL; + T *t, *first = NULL; srand (time (NULL)); - if ((t = malloc (sizeof (T) + 1)) == NULL) { + if ((t = malloc (sizeof (T))) == NULL) { perror ("MALLOC"); return first; } @@ -37,19 +35,18 @@ first = t; for (i = 1; i < elements; i++) { - if ((actual = malloc (sizeof (T) + 1)) == NULL) + if ((t->next = malloc (sizeof (T))) == NULL) break; - actual->data = GETRANDOM (rand_max); - actual->next = NULL; - t->next = actual; - t = actual; + t->next->data = GETRANDOM (rand_max); + t->next->next = NULL; + t = t->next; } return first; } int main (int argc, char **argv) { - T *t, *actual; + T *t, *next; if (argc != 3) { printf ("Usage: %s elements rand_max\n", argv[0]); @@ -60,9 +57,9 @@ while (t) { printf ("%d\n", t->data); - actual = t->next; + next = t->next; free (t); - t = actual; + t = next; }; return EXIT_SUCCESS;