Credo di aver capito quello che vuoi dire, e cioe' che la memoria allocata per l'array viene liberata quando si ritorna al main. Pero' non capisco in che modo allora si possa allocare della memoria in una funzione, senza che questa venga liberata uscendo dalla funzione stessa.Originariamente inviato da fastcoder
In realtà non capisco il senso della funzione leggi array. Perchè passare un puntatore alla funzione, allocarlo nella funzione, riempirlo e....uscire. Facendo così ho si allocato un array, ma nessuno fuori dalla funzione lo può usare. Credo che quello che si voleva era di allocare l'array nella funzione e poi ritornarlo al chiamante, ma il prototipo della funzione è errato in quanto non devo passare un puntatore ad int per a, ma un puntatore ad un puntatore ad int (Probabilmente quello che ha pensato Samuele70 passando un reference ad un puntatore...ma se il prg era scritto in C non funziona, in C++ allora il passaggio dei parametri è azzeccato).
Quindi ho scrivi:
void leggi_array(int **, int *);
oppure cambi in:
int *leggi_array(int *);
e ritorni il puntatore (che ovviamente il chiamante deve liberare).
Inizializzare a è inutile...darebbe comunque un segfault perchè dopo la funzione accedi ad un array NULL.
![]()
Se puoi spiegarmi dettagliatamente come procedere te ne sarei grato...