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
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.
TDM Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 Ich würde nach free den Zeiger noch auf NULL setzen.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden