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

    puntatori e memory leak [c++]

    Salve, la mia domanda è la seguente, so che può sembrare banale, ma non sono riuscito a trovare molto in rete...
    Quali sono i puntatori che devono essere assolutamente deallocati manualmente, richiamando funzioni come free(), o l'operatore delete, che se non così deallocati provocherebbero un memory leak?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Tutti ...

    Ovvero ... che domanda è la tua?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    quando allochi della memoria parte della memoria libera disponibile alla tua applicazione viene impegnata per questo scopo.
    Se non liberi questa memoria la memoria disponibile per la tua applicazione diminuisce.
    Se non esegui dei controlli sulla allocazione di memoria e questa terminasse potresti avere crash di sistema e, purtroppo, non sempre replicabili.
    La allocazione di memoria "più critica" è quella che avviene all'interno di cicli (for, while, do).
    ciao
    sergio

  4. #4
    grazie delle risposte, era ciò che volevo sapere. Quindi il programma a fine ciclo non rilascia nulla da solo... Ok grazie dell'aiuto

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Però ricorda che tutte le variabili dichiarate in una funzione, se vengono allocate sullo stack, vengono rilasciate automaticamente.

    codice:
    void foo()
    {
        MyClass obj1;    //questa viene rilasciata automaticamente a fine funzione
        MyClass* ptr = new MyClass();    //questa no
    
        return;
    }
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

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.