Zeiger auf einen Zeiger



  • int iwert = 111;
    int *iptr = &iwert;
    int **iptrptr = &iptr;

    wieso nimmt man eigentlich 2 Sterne. iptrptr ist doch auch nur ein normaler Zeiger auf iptr. Und wieso würde iptr auf eine ungültige Speicheradresse zeigen, wenn man iptrptr dereferenziert mit nur einem Stern.

    int *iptrptr = &iptr würde doch iptrptr auch auf die Adresse von iptr zeigen und damit auch auf iwert.

    ????



  • BOSS schrieb:

    wieso nimmt man eigentlich 2 Sterne.

    Wieso heißt es wohl Zeiger auf Zeiger?

    iptrptr ist doch auch nur ein normaler Zeiger auf iptr.

    Wieso ist dann einmal der Datentyp int* und das anderemal int**?

    Und wieso würde iptr auf eine ungültige Speicheradresse zeigen, wenn man iptrptr dereferenziert mit nur einem Stern.

    Wenn iptrptr mit einem * dereferenziert wird, zeigt er auf den Inhalt eines anderen Pointers, der sinnigerweise auch wieder auf eine gültige Adresse (Variable) zeigen sollte.

    int *iptrptr = &iptr würde doch iptrptr auch auf die Adresse von iptr zeigen und damit auch auf iwert.
    

    Dann brauchst du aber keinen Pointer auf Pointer.

    Zeh Mau


Anmelden zum Antworten