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]);