JuliaGentili Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 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 Zitieren
Klotzkopp Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 p. Du solltest allerdings in C den Rückgabewert von malloc nicht casten. Es gibt auch keinen Grund, malloc in Klammern zu setzen. Zitieren
TDM Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 Ich würde nach free den Zeiger noch auf NULL setzen. Zitieren
Klotzkopp Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 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. Zitieren
JuliaGentili Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 Vielen Dank! MfG Julia Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.