0-terminierte Zeichenketten

Neue Frage »

Auf diesen Beitrag antworten »
thomes 0-terminierte Zeichenketten

Hi,

kann mir einer sagen was eine 0-terminierte Zeichenketten ist?
 
Auf diesen Beitrag antworten »
David1979 RE: 0-terminierte Zeichenketten

Bei der Entwicklung von Programmiersprachen haben sich zwei Arten von Stringimplementierungen eingebürgert. Die erste ist, dass man die Zeichenkette in einem Array mit einem Längenfeld ablegt. Die Länge ist dabei per Definition festgelegt. Nachteil ist hier, dass immer Speicher für die maximale Stringlänge reserviert wird.

Die zweite Methode zur Speicherung ist der Nullterminierte String. Der Name hat sich deshalb eingebürgert, da das Endezeichen (Terminator) mit einem ASCII 0 dargestellt wird. Man hat also im Speicher eine Folge von Zeichen stehen und das letzte Zeichen ist dann das ASCII 0 Zeichen. Hier wird der String nicht in einem Array gespeichert sondern mit Referenzen gearbeitet, was zwar einen Mehraufwand für die Speicherverwaltung nach sich zieht, aber dafür nur soviel Speicher reserviert wird, wie der String benötigt. In der Programmiersprache C ist dieses so realisiert. Nullterminierte Strings haben meist eine maximale Länge von 32767 Zeichen.

Java verbindet beide Methoden in seinem Stringobjekt. Es wird mit einer Referenz auf die Zeichenkette gearbeitet. Die Zeichenkette selber steht in einem Array und darf nicht mehr verändert werden. Wird ein String verändert, dann wird das alte verworfen und ein neues Objekt angelegt.
Auf diesen Beitrag antworten »
kurellajunior

Nachtrag:

Bei 0-terminierten Zeichenketten und direkten Speicheroperationen kann es passieren, dass das Endebyte "0" überschireben wird - sollte der Programmierer unsauber gearbeitet haben.
In solch einem Fall kann das Ergebnis verhehrend sein.
Auf diesen Beitrag antworten »
thomes

Dankeschön :-)
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »