Salve a tutti,
ho scritto il seguente semplice programma per la creazione di un albero tramite puntatori:
codice:
#include <stdio.h>
#include <stdlib.h>

struct nodo
{ 
    int info;
    struct nodo *left;
    struct nodo *right;
};

struct nodo *r;

struct nodo *inserimento(struct nodo *, char, int);

int main ()
{
    
    r = inserimento(r, 'X', 0);
    
    return 0;
}


struct nodo *inserimento(struct nodo *p, char pos_figlio, int padre){
    char command;
    
    if (pos_figlio == 'X') {
        p = (struct nodo *) malloc(sizeof(struct nodo));
        printf("Inserisci valore radice: ");
        scanf("%d", &p->info);
        p->left = NULL;
        p->right = NULL;
        p->left = inserimento(p->left, 'S', p->info);
        p->right = inserimento(p->right, 'D', p->info);
    }
    else {    
        printf("Vuoi inserire il figlio %c di %d? ", pos_figlio, padre);
        scanf("%c", &command);
        if (command == 's'){
            p = (struct nodo *) malloc(sizeof(struct nodo));
            printf("Inserisci valore del figlio %c di %d: ", pos_figlio, padre);
            scanf("%d", &p->info);
            p->left = NULL;
            p->right = NULL;
            p->left = inserimento(p->left, 'S', p->info);
            p->right = inserimento(p->right, 'D', p->info);    
        }
    }
    
    return(p);
}
In fase di compilazione non ottengo nessun errore; ma in fase di esecuzione, dopo aver generato il nodo radice, il programma non attende la chiamata di input per sapere se voglio o meno inserire dei figli per il relativo nodo: praticamente ignora la chiamata scanf("%c", &command); e ciò che segue.
Potreste aiutarmi?

Grazie mille in anticipo.