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