Wieso können Zeiger nicht auf mehrdimensionale Arrays zeigen?



  • Also. Ich bin Anfänger. Habe hier auch schon öfter etwas gefragt. Ich denke, die Antwort auf meine jetzige Frage ist einfach, kann dazu aber nichts finden also:
    Folgender code funktioniert problemlos:

    #include <iostream>
    using namespace std;
    
    int main() {
        int array[3];
        int *ptr_array;
        ptr_array=array;
    }
    

    Ich möchte aber gerne Zeiger auf mehrdimensionale Arrays haben:

    #include <iostream>
    using namespace std;
    
    int main() {
        int array[3][3];
        int *ptr_array;
        ptr_array=array;
    }
    

    Dieser code funktionoiert nicht. Also: wieso geht das nicht und wie kann ich eine andere Lösung verwenden?



  • Du mußt einen Pointer auf pointer verwenden um das zu realisieren, also int ** ptr_array.



  • Aha. Ich bekomme den code trotzdem nicht hin. Bekomme immernoch die Fehlermeldug. Vieleicht kannst da ja mal nen kleinen Beispielcode schreiben. Danke.


  • Mod

    Jester schrieb:

    Du mußt einen Pointer auf pointer verwenden um das zu realisieren, also int ** ptr_array.

    müssen? kaum.

    #include <iostream>
    using namespace std;
    
    int main() {
        int array[3][3];
        int (*ptr_array)[3];
        ptr_array=array;
    }
    


  • camper schrieb:

    Jester schrieb:

    Du mußt einen Pointer auf pointer verwenden um das zu realisieren, also int ** ptr_array.

    müssen? kaum.

    jo. Welche Variante war nun gleich flexibler?

    btw, täusche ich mich, oder kann es sein, daß in letzter Zeit viele Korinthen gekackt werden?



  • Jester schrieb:

    btw, täusche ich mich, oder kann es sein, daß in letzter Zeit viele Korinthen gekackt werden?

    unglaublich viele.



  • Jester schrieb:

    jo. Welche Variante war nun gleich flexibler?

    Das entscheidende duerfte wohl sein, dass es mit einem int** nicht funktioniert.

    btw, täusche ich mich, oder kann es sein, daß in letzter Zeit viele Korinthen gekackt werden?

    Definitiv, wen interessiert sowas nebensaechliches schon. 😉


Log in to reply