mmm... allora... qui la cosa è piuttosto complessa perchè ho sempre avuto difficoltà a capire i puntatori a puntatori....
da quello che ho capito io un puntatore a puntatore è una "matrice"... però con il numero di righe variabile per ogni colonna.... spero di essermi spiegato... lasciando stare la parte teorica ora... dovrei cambiare il tuo codice in C++

il tuo era:[code]
nodi = (nodo **)malloc(n * sizeof(nodo *));[code]

in c++ penso che sia
codice:
nodi = n* new nodo*;

ci sono?