Ho un main con
codice:
char **t;
int n
printf("Quante stringhe vuoi inserire?");
scanf("%d",&n);
t=leggi(n);
e il seguente metodo che, da 0 a n-1, fa inserire all'utente le stringhe, poi le duplica con strdup() e le assegna ad un puntatore di puntatore. Infine, restituisce il punt. di punt.
(Devo farlo per scuola, quindi devo per forza usare questa sequenza di passi!)

codice:
char **leggi(int n){
     int i;
     char **p=malloc(n*sizeof(char));
     char *s;
     
     for(i=0;i<n;i++){
        printf("Stringa n. %d: ",i+1);
        scanf("%s",&s);     
        p[i]=strdup(s);
     }

     for(i=0;i<n;i++)
     printf("%c",p[i]);
       
          return p;
     }
ho aggiunto alla fine la stampa di p[] per vedere se la duplicazione funziona...ma niente da fare Cosa avrò sbagliato? Mi viene da pensare che sia sbagliato il malloc...ma non capisco!!
Grazie