Sì non hai tutti i torti xD ho rimediato aggiungendo free(temp) alla fine del ciclo while nel main. Comunque se provo a passare temp inizializzato a null come parametro esplicito e ad allocarlo stesso nella funzione ho problemi anche con il primo ciclo. Per quanto riguarda quel dimS in realtà l'ho inizializzato a DIM anche quello. Lì stavo facendo delle prove e ho scordato di correggerlo, errore mio ^^"