Probleme mit Rückgabetyp



  • Ich habe eine Funktion "void conversion(char TURN[20], int* Ergebnis[4])" erstellt die Schachzüge z.B. A2-A3 in eine Zahl (in Bezug auf das Beispiel würde sie 1213 lauten) umwandelt. Ich will das Ergebnis als Array zurückgeben, jedoch bekomme ich eine Fehlermeldung:"error C2664: 'conversion' : Konvertierung des Parameters 2 von 'int (*)[4]' in 'int *[]' nicht moeglich
    Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    Fehler beim Ausführen von cl.exe."
    Hier noch einmal der Aufruf der Funktion:

    int temp[4];
    char Turn[20];
    ...
    conversion(Turn, &temp);
    ...
    

    Ich hab keine Ahnung wie ich des Fehlers Herr werden kann.



  • Benutz doch einfach Vektoren.



  • Arrays werden generell by-refernce übergeben und nicht by-value. Dh, folgendes reicht vollkommen aus

    // deklaration
    void conversion(char TURN[20], int Ergebnis[4]);
    // aufruf
    conversion(Turn, temp);
    

    Arrays die nicht verändert werden sollen, machst du einfach const, zB

    // deklaration
    void conversion(const char TURN[20], int Ergebnis[4]);
    

Anmelden zum Antworten