C2664, was ist da falsch gelaufen?
-
Hallo!
Ich habe ein Problem.. Und zwar ich wollte mal wieder anfangen etwas zu programmieren, allerdings habe ich schon am Anfang einen Fehler, nämlich den verhassen C2664 :S
Hier ist der Code:
#include<stdio.h> #include<conio.h> #include<time.h> #include "windows.h" void initialisieren(int *, int, int, int); void darstellen(int *); int main() { int spielfeld[15][30]; int nichts = 0; int mauer = 61; int figur = 43; int game = 0; initialisieren(spielfeld, mauer, nichts, figur); while(game == 0) { darstellen(spielfeld); getch(); } return 0; } void initialisieren(int fspielfeld[15][30], int fmauer, int fnichts, int ffigur) { int i, j; for(i = 0;i < 15;i++) { for(j = 0;j < 30;j++) { fspielfeld[i][j] = fnichts; if(i == 0) { fspielfeld[i][j] = fmauer; } } } } void darstellen(int ffspielfeld[15][30]) { int i, j; system("CLS"); for(i = 0;i < 15;i++) { for(j = 0;j < 30;j++) { printf("%c", ffspielfeld[i][j]); } printf("\n"); } }
folgende 2 Fehlermeldungen erhalte ich:
Fehler 1 error C2664: 'initialisieren': Konvertierung des Parameters 1 von 'int [15][30]' in 'int *' nicht möglich
Fehler 2 error C2664: 'darstellen': Konvertierung des Parameters 1 von 'int [15][30]' in 'int *' nicht möglich
Ich hoffe jemand von euch kann mir helfen, danke im Vorraus!
-
Die Deklaration und die Definition der Funktionsparameter stimmen nicht überein, int* ist ungleich int[15[30], womit der Compiler (wie immer) recht hat.
Ziehe die beiden Funktions-Definitionen vor main und werfe die Prototypen weg.
-
Wutz schrieb:
Die Deklaration und die Definition der Funktionsparameter stimmen nicht überein, int* ist ungleich int[15[30], womit der Compiler (wie immer) recht hat.
Ziehe die beiden Funktions-Definitionen vor main und werfe die Prototypen weg.Hallo! Danke erstmal für die schnelle Hilfe,aber wie hätte der Code denn auszusehen wenn ich die Prototypen beibehalten möchte?
-
Schreib in den Prototypen einfach das gleiche wie bei der Definition der Funktion.