Grazie per la risposta, ho modificato così:
codice:
void leafSum(BinTree t) {
leafSumAus(t, t->elem);
}
void leafSumAus(BinTree t, int tot) {
if(isLeaf(t)) { // se è una foglia
printf("foglia\n");
printf("tot: %s\n", tot);
t->elem = tot;
}
else {
printf("non foglia\n");
if(t->left != NULL)
leafSumAus(t->left, tot + t->elem);
if(t->right != NULL)
leafSumAus(t->right, tot + t->elem);
}
}
Aggiungendo le stampe sembra che si pianti quando entra nel ramo if perchè non stampa mai "foglia" e va in loop...