Brauche Hilfe bei meinem Sudoku Programm
-
Hallo, ich bräuchte mal eure Hilfe bei meinem Sudoku programm also, immer wen ich den Compile bekomme ich folgenden Fehler:
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(35) : error C2057: Konstanter Ausdruck erwartet
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(35) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(35) : error C2133: 'vert': Unbekannte Größedas ist der Fehler für den Code Schnipsel:
{ if(spalte==0){return 1;} int vert[spalte]; int numberv=0; for(int i=0; i<spalte; i++) {
und hier bekomm ich die Gleichen 3 Fehler auchnochmal:
{ if(zeile==0){return 1;} int hor[zeile]; int numberh=0; for(int i=0; i<zeile; i++) {
und beim nechsten Code Schnipsel:
{ srand(time(0)); int change[0]; for(int zeile=0; zeile<9; zeile++) {
kommt der Fehler:
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(222) : warning C4244: 'Argument': Konvertierung von 'time_t' in 'unsigned int', möglicher Datenverlust
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(223) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
1>c:\users\patrick schwarz\documents\visual studio 2005\projects\sudoku2\sudoku2\sudoku2.cpp(223) : error C2133: 'change': Unbekannte GrößeBitte Helft mir, Compiliert ist das mit Visual Studio 2005.
-
Bei Arrays muss zur Compilezeit die entgültige Größe bekannt sein oder du musst auf Vektoren o.ä. umsteigen.
Sowas geht also nicht
int hor[zeile]; //zeile muss zur Compilezeit bekannt sein
#define ZEILE 10 int hor[ZEILE]; //wie so z.B. was dir wohl nichts bringt
P.S: Deine Überschrift mag zwar irgendwie stimmen aber dein Problem hat ansich ja ncihts mit Sudoku zu tun, hat also praktisch nen Aussagewert von null.
-
Kurzfassung: Die Größe eines Arrays muß (a) zur Compilezeit vorgegeben sein (du kannst also keine Variable als Größenwert verwenden) und (b) größer als 0 sein (was für einen Sinn soll das 0-Array im letzten Abschnitt überhaupt haben?). Wenn du die Array-Größe erst zur Laufzeit festlegen willst, nimm lieber std::vector<>.
PS: Die Warnung bei der srand()-Zeile kannst du ignorieren oder mit einem Cast lahmlegen.