Call by Value macht mich fertig :-(
-
Hallo alle zusammen ich habe folgendes Problem:
in meinem Mainprogramm habe ich einen Pointer auf eine Struktur.
Gebe ich nun in einer Untermethode den Speicherplatz mittels free dieser Struktur frei hat der Pointer ja immer noch die Adresse auf die Struktur.
Gibt es eine Möglichkeit den Pointer in dieser Untermethode z.B.:deleteStruktur(pointer *p){free(p)};auf Null zusetzen, da dieser Untermethode ja nur der Pointer als "Kopie" übergeben wird und eine Änderung des Pointerwertes sich nicht auf den Pointer der Mainmethode auswirkt.
Ich hoffe ihr habt mein Problem verstanden.
Danke
-
deleteStruktur(pointer **p) { free(*p); *p = NULL; };
-
das funktioniert bei mir leider nicht, da nur ein Pointer übergeben werden kann und kein Pointer auf einen Pointer. Also es geht wirklich nur (pointer *p) als Übergabe für deleteStack, trotzdem danke.
-
das funktioniert bei mir leider nicht, da nur ein Pointer übergeben werden kann und kein Pointer auf einen Pointer.
Aha. Den Grund freilich sollen wir aus den Sternen lesen.
-
pointer *x=....; deleteStrukctur(&x); //referenz des zeiger == zeiger auf zeiger deleteStruktur(pointer **p) { free(*p); *p = NULL; };
-
callisto schrieb:
das funktioniert bei mir leider nicht, da nur ein Pointer übergeben werden kann und kein Pointer auf einen Pointer. Also es geht wirklich nur (pointer *p) als Übergabe für deleteStack, trotzdem danke.
dann mach's mit 'nem makro
