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öße

    das 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öße

    Bitte 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.


Anmelden zum Antworten