Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 |
const int Hoehe = 40; const int Breite = 50; char MAP[Hoehe][Breite]; //MAP Array definieren char *pMAP = &MAP[Hoehe][Breite]; //Zeiger auf das MAP Array |
C-/C++-Quelltext |
|
1 |
MapInit (Hoehe, Breite, pMAP); |
C-/C++-Quelltext |
|
1 |
int MapInit (const int Hoehe, const int Breite, char *pMAP[Hoehe][Breite]); |
C-/C++-Quelltext |
|
1 2 3 4 |
const int Hoehe = 40; const int Breite = 50; char MAP[Hoehe][Breite]; // MAP hat den Typ char** da es ein 2D-Array ist |
C-/C++-Quelltext |
|
1 2 3 4 |
int MapInit (const int Hoehe, const int Breite, char **pMAP); // Zugriff: MapInit(Hoehe, Breite, MAP); |
C-/C++-Quelltext |
|
1 2 3 4 5 |
for (int i=0; i<Hoehe; ++i) for (int j=0; j<Breite; ++j) { pMAP[i][j]=0; } |
Zitat
cannot convert `char (*)[50]' to `char**' for argument `3' to `int MapInit(int, int, char**)'
C-/C++-Quelltext |
|
1 2 |
//Map Initialisieren
MapInit (Hoehe, Breite, MAP);
|
Administrator
Zitat von »"grek40"«
Du kannst dir als Grundregel merken, dass für jede Arraydimension eigentlich eine Pointerdimension dazu kommt. Um also auf MAP in einer Funktion zuzugreifen brauchst du einen Doppelpointer
C-/C++-Quelltext |
|
1 2 3 |
int test[2][2] = {1, 2, 3, 4}; int* p = reinterpret_cast<int*>(test); for(int i = 0; i < 4; i++) printf("%d ", p[i]); |
C-/C++-Quelltext |
|
1 2 3 |
int test[2][2] = {1, 2, 3, 4}; int** p = reinterpret_cast<int**>(test); for(int i = 0; i < 2; i++) for(int j = 0; j < 2; j++) printf("%d ", p[i][j]); |
Administrator
Zitat
MapInit.cpp invalid types `char[int]' for array subscript
C-/C++-Quelltext |
|
1 2 3 |
//Prototypen // int MapInit (const int Hoehe, const int Breite, char *pMAP); |
C-/C++-Quelltext |
|
1 2 3 4 5 |
char MAP[Hoehe][Breite]; //MAP Array definieren char *pMAP = reinterpret_cast<char*>(MAP); //casten //Map Initialisieren MapInit (Hoehe, Breite, pMAP); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
int MapInit (const int Hoehe, const int Breite, char *pMAP) { //Map mit Spielfeld füllen pMAP[5][5] = 'A'; //Fehler: " invalid types `char[int]' for array subscript" } |
Administrator
Werbeanzeige