Mein lieblingsthema Structuren -.- :)
-
Grüß euch!
Ich habe mal wieder in der Schule etwas neues gelernt, da kennt sich eigentlich keiner so richtig aus: structuren.
Hier ist ein Programmteil von meinen Pacman - Game.Die Initialisierung von den Ganzen Structuren:
sonstigesT sonstiges = { 1, 'y', 'y' }; spielT spiel = {3,{ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ,{1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1} ,{1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1} ,{1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1} ,{1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1} ,{1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1} ,{1,2,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1} ,{1,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,2,2,2,2,2,1} ,{1,1,1,1,1,1,2,1,1,2,2,2,2,1,1,2,2,2,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,1,1,1,0,0,1,1,1,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,1,0,0,0,0,0,0,1,2,1,1,2,1,1,1,1,1,1} ,{3,0,0,0,0,0,2,2,2,2,1,0,0,0,0,0,0,1,2,2,2,2,0,0,0,0,0,4} ,{1,1,1,1,1,1,2,1,1,2,1,0,0,0,0,0,0,1,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1} ,{1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1} ,{1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1} ,{1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1} ,{1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1} ,{1,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,1} ,{1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1} ,{1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1} ,{1,2,2,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,2,2,1} ,{1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1} ,{1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1} ,{1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1} ,{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}},{3,0,{17,23},},};
Mir wird der Fehler: excess elements in scalar initializer in der letzten Zeile angezeigt, ich weiß nicht was es bedeutet
Noch ein Fehler (programmausschnitt):void game(sonstigesPtT sonstiges, spielPtT spiel) { time(&sonstiges->beginn); //todo spielfeld ausgeben clrscr(); int i; int j; for (i = 0; i < ZEILEN; ++i) { for (j = 0; j < SPALTEN; ++j) { switch (spiel->spielFeld[i][j]) { case 1: setColor(TF_BLUE,TB_BLUE); printf(" "); break; case 2: setColor(TF_YELLOW,TB_BLACK); printf("*"); break; case 0: setColor(TF_WHITE,TB_BLACK); printf(" "); break; case 3: setColor(TF_CYAN,TF_CYAN); printf(" "); break; default: break; } setColor(TF_WHITE,TB_BLACK); } if (i < ZEILEN - 1) printf("\n"); } //todo steuerung sonstiges->run = 0; while (sonstiges->run == 0) { if (kbhit()) { sonstiges->input = getch(); switch (sonstiges->input) { case 'w': spiel->pacman.coord.zeile--; //request for member ‘zeile’ in something not a structure or union break; case 's': spiel->pacman.coord.zeile++; //request for member ‘zeile’ in something not a structure or union break; case 'a': spiel->pacman.coord.spalte--; //request for member ‘zeile’ in something not a structure or union break; case 'd': spiel->pacman.coord.spalte++; //request for member ‘zeile’ in something not a structure or union break; default: break; } } } //todo automatische steuerung (wenn nichts gedrückt) //todo kollisionen //todo geister time(&sonstiges->finish); //difftime }
Jetzt will ich fragen, warum der Compiler mir das ausspuckt
Hier meine .h Datei:
/* * pacman_header.h * * Created on: 08.10.2012 * Author: weini */ #ifndef PACMAN_HEADER_H_ #define PACMAN_HEADER_H_ #include "consoleio.h" #include <stdlib.h> #include <stdio.h> #include <time.h> #define ZEILEN 31 #define SPALTEN 28 typedef struct coord { unsigned zeile; unsigned spalte; }coordT, *coordPtT; typedef struct pacman { unsigned leben; unsigned punkte; coordPtT coord; }pacmanT, *pacmanPtT; typedef struct spiel { unsigned lvl; unsigned spielFeld[50][90]; pacmanT pacman; }spielT, *spielPtT; typedef struct sonstiges { unsigned cur; char input; char nextInput; time_t beginn; time_t finish; unsigned run; }sonstigesT, *sonstigesPtT; int menu(sonstigesPtT sonstiges); void game(sonstigesPtT sonstiges, spielPtT spiel); #endif /* PACMAN_HEADER_H_ */
Vielen Dank schon im Voraus
weini
-
Erster Fehler: Was sollen da diese einsamen Kommas in der letzten Zeile?
Zweiter Fehler: pacmanT::coord ist bei dir ja auch vom Typ struct coord* (typedefed auf coordPtT) und somit ein Zeigertyp. Du meintest dort wohl eher coordT.
-
1. Die brauche ich, damit ich nicht vergesse was noch zum tuen ist (ist ja ein todo)
2. Danke Danke Danke Danke Ich bin wieder einmal zu blöd gewesen, das ich diesen Fehler gefunden habe
-
weini37 schrieb:
1. Die brauche ich, damit ich nicht vergesse was noch zum tuen ist (ist ja ein todo)
Du kannst doch nicht einfach irgendwelche Zeichen mit syntaktischer Bedeutung mitten in dein Programm setzen!
-
Welche Bedeutung haben die denn in diesem Fall?
-
koma-comma schrieb:
Welche Bedeutung haben die denn in diesem Fall?
Compile-error.
-
CJosef schrieb:
koma-comma schrieb:
Welche Bedeutung haben die denn in diesem Fall?
Compile-error.
wieso? Kommas am Ende der Initialisierungsliste sind zulässig.
-
camper schrieb:
CJosef schrieb:
koma-comma schrieb:
Welche Bedeutung haben die denn in diesem Fall?
Compile-error.
wieso? Kommas am Ende der Initialisierungsliste sind zulässig.
Wieso? Weil es zu viele Initialisierungen sind.
-
Der oben genannte zweite Fehler war tatsächlich auch der erste Fehler, da der fälschlich benutzte Pointer mit den Daten des Structs initialisiert wurde.