Der Compiler überprüft die Sinnhaftigkeit deiner Rechnungen nicht. Im ist egal, ob die Arraygrenzen überprüfst.
Hat der Compiler denn keine Zeilennummer zur Warnung angegeben? Diese heiß, wie du schreibst "WARNING: array subscript is above array bounds" und nicht könnte oder so. Und da wirst du auch hinten aus deinem Array hinausgeraten sein. Ist so der Standardfehler in C:Und dann ist mir an einer Stelle aufgefallen, dass ich dort das '\0' -Endzeichen manuell gesetzt habe. Und das war der Grund wieso er eigentlich rumgemeckert hat!
char text[20];
text[20] = '\0';
Unerlaubt ist das nicht, dann wäre es ein Error und das Programm würde nicht Compilieren.Aus irgendeinem Grund hat der Compiler wohl gemeint, ich schreibe ihm in den unerlaubten Bereich was rein.
Zeig mal die relevante Codestelle incl der Arraydeklaration. Da wird schon was falsch sein. Geh mal einfach davon aus, daß der Compiler die Sprache viel besser als du kennt. Und das ein Programm trotzdem oft funktioniert ist normal.Eigentlich war der Schritt auch überflüssig (falsch jedoch nicht).
MfG Klebwax
Lesezeichen