Fehler durch Array!
-
Kann mir einer von euch sagen warum beim ende einer Funktion diese Fehlermeldung erscheint??
Speicher ist ....
int Speicher[41];
Dann fülle ich das Array mit Werten und gehe aus der Funktion!
BAMM!Run-Time Check Failure #2 - Stack around the variable 'Speicher' was corrupted
-
WIE füllst du dieses Array? Ich hoffe mal, du hast daran gedacht, daß 'Speicher[41]' kein Element des Arrays ist (der höchste zulässige Index ist 'Größe-1' - bei der Definition gibst du die Größe an).
-
Ne aber ich fülle das Array von -8 <-> 32!!!
/**ARRAY INITIALISIEREN*/ for(y=-8;y<32+1;y++){ Speicher[y]= 0; printf("Wert %i :%i\n",y,Speicher[y]); }
Weil ich als Index -8 usw. brauch!
Kann man das machen??
-
nein...
arrayelemente fangen bei 0 an und enden bei max(index) - 1... also bei Speicher[42] von 0 bis 41...
im endeffekt brauchst du ja bloß gedanklich im programm den offset 8 mit schleppen
-
Thes-One schrieb:
Ne aber ich fülle das Array von -8 <-> 32!!!
/**ARRAY INITIALISIEREN*/ for(y=-8;y<32+1;y++){ Speicher[y]= 0; printf("Wert %i :%i\n",y,Speicher[y]); }
Weil ich als Index -8 usw. brauch!
Kann man das machen??und genau deswegen verletzt du die Grenen des Arrays, denn durch ein Speicher[-8] greifst du auf eine Stelle zu, die dir unter Umständen nicht gehört oder nicht ändern solltest, wie deinen Stack --> Bamm.
BTW: du solltest echt dir überlegen, ein gutes C Buch zu kaufen und es durchzuarbeiten. Du machst unglaublich viele Fehler mit Kleinigkeiten, weil du einfach nicht aufpasst. Wenn du mit Zeigern und Arrays arbeitet, musst du zuerst denken und dann den Code schreiben.