Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Null-Charakter (\0)

Damit der Computer weiß, wo ein String aufhört, gibt C immer am Ende eines Strings einen Null-Charakter hinzu.

Beispiel

Wir haben die folgende Variable:

char hello[5] = "HELLO";

Lassen wir uns mal visualisieren wo die Variable gerade in unserem Arbeitsspeicher liegt:

12345
32159‘H’‘E’‘L’‘L’‘O’63176180‘\0’

Jetzt geben wir die Variable aus:

printf("%s", hello);

Hier ist das Ergebnis:

HELLO?░┤

Was ist hier geschehen?

Da wir unseren String nur 5 Bytes gegen haben, hat die Variable keinen Platz für den Null-Charakter ('\0') gehabt. Das Endergebnis ist, dass der Computer bis zu einem Null-Charakter weiter ausgegeben hat, und dabei Zahlen als Charakteren ausgegeben hat.

Deshalb solltet man dem Deklarieren eines Strings immer die gedachte Größe + 1 reinschreiben.

Ausbesserung

Jetzt lassen wir unserer Variable 6 Bytes zu:

char hello[6] = "HELLO"; // => HELLO\0

Visualisiert sieht es so aus:

123456
32159‘H’‘E’‘L’‘L’‘O’‘\0’176180‘\0’

Jetzt haben wir genug Platz für den Null-Charakter, und es kann richtig ausgegeben werden:

HELLO