Yesse, sul fatto di 'q' dimenticavo che poi lo modificavi.
Nel ciclo non devi liberare nulla, ne` 'p' ne` tantomeno 'q', mentre alla fine cmq non devi liberare 'p', ma gli elementi di 'vett'.
L`incomprensione sulla memoria allocata per un puntatore e` dovuta principalmente ad un fatto: bisogna ricordarsi che un puntatore non contiene memoria, quindi assegnazioni di puntatori portano a "memoria condivisa". Stacci attento perche` e` un argomento fonte di numerosi grattacapi, sia in C che in C++. :master: E se ora puo` sembrare una cosa semplice .. in programmi grossi sono problemi che fanno sputare sangue.
Ciao.
P.S.: bisogna ammettere che la versione del tuo amico e` piu` elegante, :tongue: a parte un uso abbondante di asterischi..Inoltre, per copiare n caratteri uguali in un array (stringa in questo caso) puoi usare memset() e mettere il solito '\0' alla fine, cosi` fai pure il fiQo col prof. :adhone: