Mechthild: C - Zeigerfrage Array

Beitrag lesen

Moin Christian,

hm, ich seh schon, ich muss da mehr üben...

Das probiere ich heute abend mal aus... hört sich interessant an. Wenn ich also ein Dokument als utf-8 kodiere und eine Zeichenkette "aä" wähle, die folglich 3 Bytes lang ist, dann sollte das funktionieren. Teste ich mal.

Nein, da hast du etwas missverstanden. Auch wenn du dein Dokument in utf-8 kodierst, ist der interne Datentyp char in C immer noch 1 byte lang (auf gängiger Hardware). Und deshalb wird ein char \*ptr = "aä"; ++ptr; danach immer noch auf das erste Byte der UTF-8-Sequenz zeigen.

so ganz kapiert hab ich's noch nicht. Oder anders, das, was du schreibst, verstehe ich schon so einigermaßen. Was unitedpower schrieb, kann ich aber nicht so recht einordnen. Oder sollte das vermutlich nur ein Beispiel sein, um zu veranschaulichen, dass die Datengröße beim Dereferenzieren immer automatisch berechnet wird?

Wie ist denn das dann eigentlich mit uft8 bzw. Mehrbytekodierungen? Ist die interne Größe von
char *ptr = 'ä'; 1 Byte, egal wie das Dokument kodiert ist?
das werde ich heute abend mal bisschen machen, mit Zeichen und Kodierungen spielen.