Compiler Probleme Kategorie: Programmierung C (von PeterS - 8.07.2007 13:04) | |
| |
Hallo, ich habe in letzter Zeit öfter mal Beispielprogramme von Kunden bekommen, die meinten Compilerprobleme zu haben. Dies waren zu 95% aber Probleme die in 2 klassische "C" Fehlerkategorien fallen: 1. Arrays beginnen mit 0 und nicht mit 1! Wenn man ein array int a[10]; deklariert, darf man nur auf a[0] bis a[9] zugreifen. Schreibt man Werte in a[10], so schreibt man in eine Variable die zufällig im Speicher hinter dem array liegt. 2. Stringvariablen brauchen eine terminierende 0 am Ende. Benutzt man ein character array für String, so mu� man das array immer ein Zeichen grö�er dimensionieren als die maximale Stringlänge, denn das letzte Zeichen eines Strings ist immer die Null! Vergisst man dies, so schreibt man auf eine Variable die zufällig im Speicher hinter dem array liegt. Diese beiden Fehler äu�ern sich oft in der Beobachtung, das wenn man Variablen in einer anderen Reihenfolge deklariert, der Fehler verschwindet. Dabei ist der Fehler noch da, aber man hat eine andere Variable im Speicher überschrieben. Diese war dann aber meist in diesem Moment nicht so wichtig, und der Bug scheint zu verschwinden. Am Ende wird der Fehler dann dem Compiler zugeschrieben. Diese Fehler sind wie gesagt, klassische Probleme, die seit Jahrzehnten jeden C Programmierer plagen. Gruss Peter | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum