Fehler: "no suitable conversion function from "Feld" to "Feld (*)[8]" exists



  • Ich habe angefangen, ein Programm zu schreiben, wobei einer Funktion eine Instanz einer Struktur übergeben wird, welche fuer das Spielfeld ist.
    Die Funktion ist:

    void Verschieben(Feld Spielfeld[x][y])
    

    der übergebe ich dann eine Instanz der Struktur Feld, der Aufruf sieht demnach so aus:

    Verschieben(Spielfeld[x][y]);
    

    ,
    dann kommt der Fehler.

    LG
    Die Tuer

    PS: Die Instanz der Struktur gehört einer Klasse an



  • Mehr Code posten hilft das Problem besser nachvollziehen zu können. Allerdings sieht es so aus, als versuchst du Arrays als Parameter zu verwenden. Dies geht nicht. Verwende stattdessen Zeiger.

    void Verschieben(Feld* Spielfeld)
    


  • Dein Funktions-Prototyp müsste so aussehen:

    void Verschieben(Feld Spielfeld);
    

    Dann kannst du auch sowas machen:

    Verschieben(Spielfeld[x][y]);
    

    Vorausgesetzt Spielfeld ist auch wirklich so deklariert:

    Feld Spielfeld[10][10];
    

    Und x und y müssen auch einen gültigen Wert habe. Hier jeweils von 0 bis 9.



  • Natürlich geht das. Nur muss dann beim Aufruf natürlich auch das Array durchgereicht werden, nicht eins seiner Elemente:

    Verschieben(Spielfeld); // ohne [x][y]
    

    Daher auch die Fehlermeldung, dass Feld nicht nach Feld (*)[8] (Zeiger auf Feld-Arrays der Länge 😎 umgewandelt werden kann.



  • Vielen Dank, es klappt wieder. 🙂


Anmelden zum Antworten