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?


  • Mod

    Schreib in den Prototypen einfach das gleiche wie bei der Definition der Funktion.


Anmelden zum Antworten