pippo
2006-12-19, 16:48:39
Ich verplans grad wieder voll und find den Fehler net.
#define PAT_CNT 2
#define LMAX_Y 16
#define LMAX_X 32
#include <iostream>
using namespace std;
bool CheckPosition(unsigned char *[LMAX_Y][LMAX_X+1], unsigned int *[2]);
int main()
{
unsigned char LabPat[PAT_CNT][LMAX_Y][LMAX_X+1] =
{{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X ",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X XX X",
"X XX XXX XXXXXXXXXXXXXXXXXXXXX X",
"X XX XXX XX X",
"X XX XXX XXXXXXXXXXXXXXXXXX XX X",
"X XX XXX XXXXXXXX XXXXXXXXX XX X",
"X XX XX X XX XX X",
"X XX XX XXXXXXXXXXXXXXXX XXXXX X",
"X XX XX XX XX X",
"X XX XXXXXXXXXXXXXXXXXXXXXX XX X",
"X XX XX X",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X",
"X X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"},
{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X",
"X XXXXXXXXXXXXXXX XXXXXXXXXXXXXX",
"X XX X",
"X XX XXX XXXXXXXXXXXXXXXXXXXXX X",
"X XX XX XX X",
"X XX XXX XXXXXXX XXXXXXXXXX XX X",
"X XX XXX XXXXXXXXXXXXXXXXXX XX X",
"X XX XX X XX XX X",
"X XX XX XXXXXXXX XXXXXXX XXXXX X",
"X XX XX XX XX X",
"X XX XXXXXXXXXXXXXXXXXXXXXX XX X",
"X XX XX X",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X",
" X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}};
unsigned int LabStart[PAT_CNT][2] = {{7,16},{6,16}}, Lab=0, Warte=0;
cout << "Waehlen sie ein Labyrinth: ";
cin >> Lab;
CheckPosition (LabPat[Lab-1], LabStart[Lab-1]);
cin >> Warte;
return 0;
}
bool CheckPosition (unsigned char *LapPat[LMAX_Y][LMAX_X+1], unsigned int *LabStart[2]) {
return true;
}
Fehlermeldung:
error C2664: 'CheckPosition': Konvertierung des Parameters 1 von 'unsigned char [16][33]' in 'unsigned char *[][33]' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
#define PAT_CNT 2
#define LMAX_Y 16
#define LMAX_X 32
#include <iostream>
using namespace std;
bool CheckPosition(unsigned char *[LMAX_Y][LMAX_X+1], unsigned int *[2]);
int main()
{
unsigned char LabPat[PAT_CNT][LMAX_Y][LMAX_X+1] =
{{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X ",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X XX X",
"X XX XXX XXXXXXXXXXXXXXXXXXXXX X",
"X XX XXX XX X",
"X XX XXX XXXXXXXXXXXXXXXXXX XX X",
"X XX XXX XXXXXXXX XXXXXXXXX XX X",
"X XX XX X XX XX X",
"X XX XX XXXXXXXXXXXXXXXX XXXXX X",
"X XX XX XX XX X",
"X XX XXXXXXXXXXXXXXXXXXXXXX XX X",
"X XX XX X",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X",
"X X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"},
{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X X",
"X XXXXXXXXXXXXXXX XXXXXXXXXXXXXX",
"X XX X",
"X XX XXX XXXXXXXXXXXXXXXXXXXXX X",
"X XX XX XX X",
"X XX XXX XXXXXXX XXXXXXXXXX XX X",
"X XX XXX XXXXXXXXXXXXXXXXXX XX X",
"X XX XX X XX XX X",
"X XX XX XXXXXXXX XXXXXXX XXXXX X",
"X XX XX XX XX X",
"X XX XXXXXXXXXXXXXXXXXXXXXX XX X",
"X XX XX X",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X",
" X",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}};
unsigned int LabStart[PAT_CNT][2] = {{7,16},{6,16}}, Lab=0, Warte=0;
cout << "Waehlen sie ein Labyrinth: ";
cin >> Lab;
CheckPosition (LabPat[Lab-1], LabStart[Lab-1]);
cin >> Warte;
return 0;
}
bool CheckPosition (unsigned char *LapPat[LMAX_Y][LMAX_X+1], unsigned int *LabStart[2]) {
return true;
}
Fehlermeldung:
error C2664: 'CheckPosition': Konvertierung des Parameters 1 von 'unsigned char [16][33]' in 'unsigned char *[][33]' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.