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
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