si ho restituito temp ho corretto sopraIl problema sta inlis = tmp;
. 'Lis' è una variabile locale passata per valore alla funzione, quando chiamicancellalibri(lis->next, titolo)
, lis->next viene copiato in lis, ma quando modifichi lis nella chiamata ricorsiva, non viene modificato il valore originale. Essendo questa una funzione ricorsiva, dovevi restituire il valore di 'tmp', come avevi fatto nel codice postato più sù (non capisco perché hai fatto questa modifica).
P.S.: non serve inserire la dimensione di un array tra i parametri di una funzione, perché non c'è alcuna garanzia che il compilatore esegua un controllo su tale valore e impedisca di passare un array di dimensione diversa.
Post unito automaticamente:
ma ora cancella in coda ma non in testa