Hallo,

wichtig ist erst einmal das dein Puffer groß genug ist.

char buffer[5] = "Hallo";
ist ganz böse und falsch, immer. Hallo hat zwar nur 5 Buchstaben, aber für die Null ist kein Platz mehr.

char *Buchstabe = 'a';
nicht falsch, für PrintString aber auch böse.

char buffer[15] = "Hallo";
ist okay, in Anführungszeichen wird \0 automatisch angefügt.

Aufpassen musst du auch, wenn du dir aus Zeichen Strings zusammenbasteles oder z.B. bei strncpy.

char buffer[6] = "Hallo";
char test [15] = "ABCDEFGHIJ";

strncpy(test,buffer,3);
test[3] = 0;

ohne test [3] = 0; würde der Ausgabestring HalDEFGHIJ sein.

okay?

Ich benutze die Null, um das Ende des Strings zu erkennen. In der Annahme das ich weiß was ich tue, ist das für mich auch okay. Der Quellcode war nicht zur Veröffentlichung gedacht und auf meine Anwendung zurecht geschnitten. Bisher nicht einmal optimiert*. Darum musst du selber darauf achten, dass eine Null da ist. Denkbar ist, dass man die Funktion spätestens nach erreichen der Zeichen pro Zeile abbricht. Damit kann man zwar keinen Mist bei der Ausgabe vermeiden, zumindest wird die Funktion aber definiert abgebrochen.


Gruß

Jens


* ohne Leidensdruck kann das auch noch seeehr lange dauern