Il programma esegue correttamente ciò che è contenuto all'interno dell' if (pos_figlio == 'X')!!
Anzi "troppo velocemente": nel senso che tra le due istruzioni
codice:
...
p->left = inserimento(p->left, 'S', p->info);
p->right = inserimento(p->right, 'D', p->info);
la seconda non aspetta che la prima termini.
Penso sia un problema legato alla ricorrenza, ma non riesco a capire nè quale sia nè dove sia.

Ti ringrazio in ogni caso Frank88