Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > 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