Ho difficoltà a comprendere cosa fanno i puntatori nella seconda funzione cancellaLibriCostosi.
In paricolare:
-perchè in entrambe le funzioni scrive (Lista...) nel passaggio dei parametri?
-nella seconda usa (Lista*...) non capisco se è una dichiarazione o un passaggio di parametri, ani passaggio di puntatore
-perchè nella funzione cancellaLibriCostosi usa sempre i puntatori e invece nella prima funzione no?
-se nel passaggio di parametri della seconda funzione tiro via l'*, posso tirarlo via ovunque all'interno del corpo della funzione?
Grazie
Daniele
codice:typedef { char titolo[100]; char autore [50]; float prezzo; char prestito[50]; } Tipoinfo; typedef struct nodo { tipoinfo info; struct nodo* next; } Nodo; typedef Nodo* Lista; int contaPrestiti(Lista testa) //funzione per contare num libri in prestito { int n=0; Nodo* curr=testa; while (curr!=NULL) { if (curr->info.prestito==VERO) { n++; } curr=curr->next; } return n; } void cancellaLibriCostosi (Lista* testa) //funzione cancella libri prezzo>100 { if(*testa!=NULL) { if((*testa)->info.prezzo>100) { Nodo* temp=*testa; *testa=(*testa)->next; free(temp); cancellaLibriCostosi (testa); } else cancellaLibriCostosi(&((*testa)->next)); } }