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!


  • Mod

    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.


Anmelden zum Antworten