pointer kopie
-
hab gerade ein komisches problem
dazu die beiden Funktionen:
Kommentar erklärt das ProblemObjekt* randomNode(Objekt* root){ Objekt *pick=NULL; copyNode(root,pick); //hier ist nun pick= NULL aber WIESO ? return NULL; } void copyNode(Objekt* root,Objekt* pick){ pick=root; }
-
Weil du pick mit NULL initialisiert hast und zwischendurch nichts passiert, was pick verändert. Das einzige ist die Übergabe an die Funktion, aber das ist eine Übergabe by-value.
-
ja aber wie mache isch die übergabe dann?
also so dass wenn ich in der copyNode methode pick ändere dies auch mit dem übergebenen pick geschieht?
-
wieso geht das mit dieser modifikation?
hab ich was vergessen?Objekt* randomNode(Objekt* root){ Objekt pick; copyNode(root,&pick); //hier das ding nun Valid return NULL; } void copyNode(Objekt* root,Objekt* pick){ pick=root; }
-
pointerix schrieb:
ja aber wie mache isch die übergabe dann?
also so dass wenn ich in der copyNode methode pick ändere dies auch mit dem übergebenen pick geschieht?Objekt* randomNode(Objekt* root){ Objekt *pick=NULL; copyNode(root,&pick); //hier ist nun pick= NULL aber WIESO ? return NULL; } void copyNode(Objekt* root,Objekt** pick){ *pick=root; }
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
@grobster Danke
wow jetzt läuft irgendwie alles wie es sollte..
hab noch nie mit pointer auf pointer gearbeitet.
Weiß auch leider nicht wieso ich dass hier so lösen muss.. bin aber froh dass nun das problem gelöst ist an dem ich schon stunden sitze..
-
Das Posting ist ja jetzt in ANSI-C gelandet, aber programmierst du überhaupt in C? In C++ könnte man das auch mit Referenzen lösen:
void copyNode(Objekt* root, Objekt*& pick){ pick=root; } copyNode(root, pick);
-
ja ist c++ also werde ich es gleich auch mal versuchen. danke
-
Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wanderpokal
