Ok, funziona, ma ho ancora un dubbio: la memoria allocata va liberata di volta in volta all'interno dei cicli:

free(*(vet+i));

oppure basta farlo alla fine:

free(vet);

?