Was bedeutet "**"?



  • Don Quijote schrieb:

    Also ein Zeiger auf einen Zeiger?

    Ich versteh das immer noch nicht so richtig

    gegeben sei ein Typ T. Egal welcher. int, char, foo, string,...

    Dann ist
    T* p;

    ein Zeiger auf T.
    Was aber wenn T nun sagen wir ein char* waere?
    T* p;
    wuerde dann zu
    char** p;
    werden.

    T* ist einfach nur ein Zeiger auf T. Und T kann jeder Typ sein. Auch selber wiederum ein Zeiger. Zeiger sind ganz normale typen, da ist keine Magie dabei.

    Man kann also auch ein
    T*************************************************************** p;
    machen.



  • Shade Of Mine schrieb:

    Don Quijote schrieb:

    Also ein Zeiger auf einen Zeiger?

    Ich versteh das immer noch nicht so richtig

    gegeben sei ein Typ T. Egal welcher. int, char, foo, string,...

    Dann ist
    T* p;

    ein Zeiger auf T.
    Was aber wenn T nun sagen wir ein char* waere?
    T* p;
    wuerde dann zu
    char** p;
    werden.

    T* ist einfach nur ein Zeiger auf T. Und T kann jeder Typ sein. Auch selber wiederum ein Zeiger. Zeiger sind ganz normale typen, da ist keine Magie dabei.

    Man kann also auch ein
    T*************************************************************** p;
    machen.

    Das geht aber nicht unbegrenzt, ich glaube 7 Indirektionen werden durch den Standard mindestens gefordert.



  • Ok, klingt total logisch.

    Vielen dank euch beiden für die schnelle und kompetente Hilfe 😉



  • Tippgeber schrieb:

    Das geht aber nicht unbegrenzt, ich glaube 7 Indirektionen werden durch den Standard mindestens gefordert.

    Das ist natürlich eine Einschränkung, die einem das Leben besonders schwer machen kann... :p

    Aber ist das tatsächlich so? Und bei typedef s werden auch alle Indirektionen berücksichtigt?



  • 7 Indirektionen werden durch den Standard mindestens gefordert.

    😮
    Ich muss meinen Code umschreiben gehen... 😉



  • Tja seht ihr, jetzt habt ihr Jahre eures Lebens verschwendet. Ich arbeite schon seit Jahren nur noch mit 7-dimensionalen Arrays (natürlich übernehme ich die Speicherverwaltung von Hand und copy 'n paste) 😃 😉



  • Aber du behauptest von dir, du programmierst in C++? 😉



  • Tippgeber schrieb:

    Tja seht ihr, jetzt habt ihr Jahre eures Lebens verschwendet. Ich arbeite schon seit Jahren nur noch mit 7-dimensionalen Arrays (natürlich übernehme ich die Speicherverwaltung von Hand und copy 'n paste) 😃 😉

    das tolle an c++, ich habe eine array klasse:

    array_n<int, 7> arr(make_array_n<7>(5,6,7,8,9,10,11));

    und schon kann man
    arr[0][1][2][3][4][5][6]=7;
    machen 😉



  • wollte mir auch mal sowas schreiben aber hab noch kein bock gehabt 😉

    mach ich mal bei gelegenheit



  • Skym0sh0 schrieb:

    mach ich mal bei gelegenheit

    Lohnt sich auf jeden Fall! 😃


Anmelden zum Antworten