JuliaGentili Geschrieben 10. Februar 2010 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. Februar 2010 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 11. Februar 2010 Teilen Geschrieben 11. Februar 2010 Ich würde nach free den Zeiger noch auf NULL setzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. Februar 2010 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JuliaGentili Geschrieben 11. Februar 2010 Autor Teilen Geschrieben 11. Februar 2010 Vielen Dank! MfG Julia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.