Speicher in Struktur freigeben

OP #951761
Lesenswert?

Hallo,

ich habe eine Frage zur Freigabe allozierten Speichers. Ich definiere 
eine Struktur wie folgt:
1
typedef struct {
2
    unsigned int length;
3
    void* data;
4
} DataObject;

Initialisiert wird mittels der folgenden Hilfsfunktion:
1
DataObject* GetDataObject(unsigned int length, void* data)
2
{
3
    DataObject* object = malloc(sizeof(DataObject));
4
    if(object == NULL)
5
    {
6
        return NULL;
7
    }
8
    object->length = length;
9
    object->data = data;
10
    return object;
11
}

*data beschreibt dabei den (void* gecasteten) Zeiger auf einen 
beliebigen Datentyp.
Meine Frage ist nun, ob ich den gesamten Speicher freigebe mit
1
free(dataobject);

oder ob ich *data explizit freigeben muss über
1
free(dataoject->data);
2
free(dataobject);

Ich habe dazu leider nichts gefunden. Danke für eure Hilfe!

Gruß, Jens

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren