ragazzi se io setto un array di puntatori in una function void function(void)
questo array una volta conclusa l'esecuzione della function verrà sovrascritto oppure posso stare sicuro che viene conservato in memoria?
ragazzi se io setto un array di puntatori in una function void function(void)
questo array una volta conclusa l'esecuzione della function verrà sovrascritto oppure posso stare sicuro che viene conservato in memoria?
Dipende da come allochi la memoria per l'array ... (come per qualsiasi variabile)
Sempre se parliamo di C ... ricorda che devi sempre indicare il linguaggio per ogni thread ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
ma sai tutto tu
comunque è allocato in maniera statica.
poi però viene riempito con chiamate a malloc se cambia qualcosa :SCodice PHP:
void function(short n) {
struct mystruct *listpoint[n];
}
grazie mille oregonCodice PHP:
void function(short n) {
struct mystruct *listpoint[n];
for(i=0;i<n;i++)
listpoint[i] = (struct mystruct *)malloc(sizeof(struct mystruct));
}
In questo caso, il vettore non e' piu' disponibile all'uscita (ovvero, lo spazio viene deallocato e viene sovrascritto se necessario).
Ma le zone di memoria allocate, se non liberate prima dell'uscita dalla funzione con le free, non sono piu' raggiungibili e quindi avrai un memory leak ogni volta che chiamerai la funzione.
No MP tecnici (non rispondo nemmeno!), usa il forum.
o mio ***...
com'è OLD questo linguaggio (okok scusa non lo dico più )
come potrei fare per non incorrere in questi problemi?
devo dichiarare quel *listpoint[n] nel main() e passarglielo alla funzione come se fosse un parametro di uscita (cioè con **listpoint[])?
grazie mille ancora
(secodno me queste cose la mia prof non le sa )
Programmando correttamente in C ...Originariamente inviato da xnavigator
come potrei fare per non incorrere in questi problemi?
Puoi fare come vuoi ... dipende da cosa devi farci ...devo dichiarare ...
Puoi allocarlo esternamente e passarlo alla funzione, se questa lo deve utilizzare e se ti serve anche all'uscita.
No MP tecnici (non rispondo nemmeno!), usa il forum.
ho capito devo fare quel ciclo nel main praticamente..Originariamente inviato da oregon
Programmando correttamente in C ...
Puoi fare come vuoi ... dipende da cosa devi farci ...
Puoi allocarlo esternamente e passarlo alla funzione, se questa lo deve utilizzare e se ti serve anche all'uscita.