free()
используется для освобождения памяти, которая была выделена с помощью malloc()
/ calloc()
, например:
curr = head;
while(curr) {
item *next = curr->next;
free(curr);
curr = next;
}
head = NULL;
(временная переменная используется, поскольку содержимое curr
не может бытьдоступ после того, как он был освобожден).
Кстати, лучший способ написать вашу malloc
строку в C:
curr = malloc(sizeof *curr);
(Это означает, что строка остается правильной дажеесли тип curr
изменен).