Veröffentlicht 10. Februar 201015 j Hallo, mein Problem ist, vereinfacht dargestellt: void gun(int** p) { int *q; q = (int*) (malloc)(12*sizeof(int)); /* q mit daten fuellen */ *p = q; } void fun() { int* p; gun(&p); /* arbeiten mit p */ free(??); } Frage: Was muss '??' sein, wenn ich den in der Funktion gun allokierten Speicher freigeben will? p, &p, *p ... oder? Danke schon mal für eure Hilfe. MfG Julia
11. Februar 201015 j p. Du solltest allerdings in C den Rückgabewert von malloc nicht casten. Es gibt auch keinen Grund, malloc in Klammern zu setzen.
11. Februar 201015 j Ich würde nach free den Zeiger noch auf NULL setzen.Ich nicht. Der Zeiger läuft danach sowieso aus dem Scope, kann also gar nicht mehr benutzt werden.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.