Dando un occhiata al codice non posso fare altro che notare queste due righe:
codice:
stampalivk(a -> sinistro, currentLevel + 1, level, &somma);
stampalivk(a -> destro, currentLevel + 1, level, &somma);
Strano che non hai ricevuto nessun avviso da parte del compilatore quando l'hai compilato;
intendo dire che l'ultimo argomento della funzione stampalivk è un int*;
la variabile somma dentro la funzione è già di questo tipo, quindi non capisco perchè, quando fai le due chiamate sopra, passi alla funzione l'indirizzo(in questo modo passi una variabile di tipo int** ).
modificherei queste due righe con:
codice:
stampalivk(a -> sinistro, currentLevel + 1, level, somma);
stampalivk(a -> destro, currentLevel + 1, level, somma);
CIAO