Tom: C- verständniss der Grundlagen

Beitrag lesen

Hello,

Der Typ 'char' bezeichnet genau ein Zeichen (normalerweise
ein Byte). Ein String wird in C als ein Array von 'char'-Zeichen
gehandhabt, wobei das Ende des Arrays durch eine Null gekennzeichnet wird.

Genaugenommen ist es nicht das Ende des Arrays, sondern das Ende des Strings, das durch eine \0 gekennzeichnet wird.

Das ist wichtig, wenn man nur ein Array bestimmter Größe für den String zur Verfügung hat.

char zeichenkettenname[101];

kann maximal 100 Zeichen aufnehmen, wenn es noch als "String" behandelt werden soll.
Da liegt wohl einer der Fehler, dass C das Maximum der Zeichen nicht ausreichend überprüft, so die abschließende \0 schnell mal überschreiben werden kann und eine spätere Ausgabe dann einfach weiter liest im Speicher bis zur nächsten \0.

Man kann "Strings" zur Sicherheit immer mit \0 initialisieren, bevor man sie neu beschreibt. Das hindert einen natürlich immer noch nicht daran, den zur Verfügung stehenden Platz zu überreizen ...

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de