void pointer verliert Wert
-
Hallo,
ich möchte einem Voidzeiger die Adresse eines char-Arrays zuweisen.
Funktionieren tut folgendes:void* p = NULL; char hallo = {"Hallo"}; p = hallo;
Nun habe ich daraus eine Funktion gebaut:
void cpyPointer( void* p, char* s ) { p = s; }
In der Funktion hat p die Adresse von s, nachdem Beenden der Funktion
ist p wieder leer.
Kann mir jemand das bitte erklären.
Vielen Dank!
-
Du hast in der Funktion eine Kopie des Pointers geändert. Du musst einen Zeiger auf deinen Zeiger übergeben und durch diesen das Original ändern. Stichworte dazu: Call by reference und call by value.
-
Danke,
ich habe sowas von auf der Leitung gestanden.