Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Memoria per le variabili usata nelle function viene liberata?

    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?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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.

  3. #3
    ma sai tutto tu
    comunque è allocato in maniera statica.

    Codice PHP:
    void function(short n) {
     
    struct mystruct *listpoint[n];

    poi però viene riempito con chiamate a malloc se cambia qualcosa :S
    Codice PHP:
    void function(short n) {
     
    struct mystruct *listpoint[n];
     for(
    i=0;i<n;i++)
      
    listpoint[i] = (struct mystruct *)malloc(sizeof(struct mystruct));

    grazie mille oregon

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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.

  5. #5
    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 )

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da xnavigator
    come potrei fare per non incorrere in questi problemi?
    Programmando correttamente in C ...

    devo dichiarare ...
    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.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    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.
    ho capito devo fare quel ciclo nel main praticamente..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.