Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Arrays... :(

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.05.2010, 14:51 Uhr
~huberer98
Gast


Hallo forum!

ich bin durch Zufall, als ich zum Spaß ein kleines Programm schreiben wollte schon beim initialisieren des Arrays ins Schwitzen gekommen... warum das so ist weiß ich nicht, und ich hoffe ihr könnt es mir beantworten

Also, hier der der Code:

C++:
char field[5][5];
for (int i = 0; i < 6; i++)
     for (int j = 0; j < 6; j++)
          field[i][j] = ' ';



so das wars auch schon^^

und rauskommen tut in diesen 4 zeilen code folgender error (nach dem das programm wieder beendet wurde) "Run-Time Check Failure #2 - Stack around the variable 'field' was corrupted."

Wenn ich aber schau (unter "autos" in VS10 (auf engl.)) dann sehe ich aber, dass jede variabel im array den wert ' ' hat... ausnahmslos! aber warum kommt dann der Error??!

ich hoffe ihr könnt mir weiterh
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.05.2010, 15:01 Uhr
ao

(Operator)


Das Feld hat 5 x 5 Elemente, gültige Indizes sind 0 bis 4. Deine Schleifen indizieren von 0 bis 5.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.05.2010, 15:04 Uhr
~huberer98
Gast


DAmn... danke^^

ihc hab schon lang nix mehr gemacht und bin schon a bissl aus da übung^^
(ich weiß schlechte ausrede =P)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.05.2010, 15:11 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von ~huberer98:


C++:
char field[5][5];
for (int i = 0; i < 6; i++)  // Index überlauf.
     for (int j = 0; j < 6; j++) // hier ebenfalls
          field[i][j] = ' ';




Du lässt Deine Indizes um 1 zu weit laufen, und überschreibst dadurch jeweils ein Element. Durch die Definition char field[5][5]; bekommst Du 25 Elemente, die jeweils von 0 bis 4 nummeriert sind. Die Schleifen wären also richtig, wenn die Abfrage i<5 heissen würde.

---
Edit: ao war schneller...
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 29.05.2010 um 15:12 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: