Salve a tutti, ho un semplice dubbio, è possibile inizializzare una matrice in una funzione ausiliaria e poi ripassarla al main? Mi spiego meglio, sò bene che posso creare una matrice nel main, poi passarla ad una funzione e modificarne il contenuto, quello che non capisco è se è possibile anche crearla in una funzione ausiliaria e poi utilizzarla nel main. Il mio dubbio perchè credo che il "malloc" chiamato nella funzione, crei la matrice nello heap, rendendola quindi invisibile al main...confermate? Esiste un altro modo per fare ciò? Allego anche un codice esempio per aiutarvi a capire meglio la mia domanda(scusate so che non mi sono spiegato proprio nel migliore dei modi...)
Codice:
int legge(char **a, int *len) {
int i;
scanf("%d", len);
if(*len <= 0) return 1;
a=malloc(*len * sizeof(char*));
for( i = 0; i < *len; i++ ) {
a[i]=malloc(101*sizeof(char));
scanf("%s",a[i]);
printf("%s",a[2]);/*prova*/}
return 0;
}