Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Allocare dinamicamente strutture
Forum - C/C++ - Allocare dinamicamente strutture

Avatar
Zani88 (Member)
Pro


Messaggi: 136
Iscritto: 07/05/2006

Segnala al moderatore
Postato alle 16:43
Martedì, 03/07/2007
Supponiamo di avere la seguente struttura:
struct str{
        int  lun;
        char *pun;
       } rec;

per allocarla faccio

rec *x;
x = (rec*)calloc (1,sizeof(rec));
x->pun = (char *)calloc(10,sizeof(char));

giusto?

e per liberare lo spazio occupato bisogna fare
free (x);
o
free (x->pun);
free (x);
?

Rispondete che poi ho altri dubbi!


"Una delle principali cause della caduta dell'Impero Romano fu che, privi dello zero, non avevano un modo per indicare la corretta terminazione dei loro programmi C." (Robert Firth)
PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 19:09
Venerdì, 06/07/2007
La prima parte è giusta, ma la seconda no per rilasciare un parte di memoria bisogna effettuare il rilascio per ogni parte di memoria allocata, in quanto sono tutte indipendenti per cui :
Codice sorgente - presumibilmente Plain Text

  1. free(strutturaxy->puntatore);
  2. free(strutturaxy);



☠ B☮Rn T☮ KiLl! ☮ ¡ HeLp ! ¡ hElP ! ¡ HeLp Me ! ¡ wAnT yOu PlEaSe HeLp Me ? !

Linux Registered User #470459
PM Quote