по какой-то причине вызов моей функции 'delAll' более одного раза вызовет недопустимую ошибку free от Valgrind.Я не понимаю, почему, если я вызову эту функцию во второй раз, программа снова войдет в цикл while, хотя это просто "delAll" узла
// p - это связанный список с вызовом
struct node{
char *str, int data, struct node *next;
}
// вот функция, с которой у меня проблемы:
void delAll()
{
struct node *temp,*temp2;
temp=p;
while(temp!=NULL)
{
temp2=temp;
temp= temp->next;
free(temp2->str);
free(temp2);
}
}