Stefanie: C , Zeigerzugriff

Beitrag lesen

Hallo bleicher,

bla[i]=wert;

würde helfen, aber diese verwendung ist ausdrücklich VERBOTEN

das ist eine ganz normale Methode um auf einzelne String-Elemente zuzugreifen. Ein String ist ja auch nichts anderes als ein Array. Wer verbietet Dir das? Wie lautet die genaue Fehlermeldung des Compilers? Kann es sein, dass Du versuchst einen falschen Typ rein zu schreiben, müsstest Du ihn casten?

bla+i=wert;

ist ungültig.

Ja sicher. bla+1 ist eine Adresse, und zeigt genau auf ein Byte weiter als wo bla hin zeigt. Um den Wert an dieser Adresse zu ändern, musst Du natürlich auf den Inhalt zugreifen:

*(bla + 1) = wert;

Ich sehe gerade, dass Du das oben schon selber schreibst - hast Du es denn ausprobiert?

Man muss einmal verinnerlicht haben, was Zeiger sind und was Buffer sind. Zeichne Dir das eventuell einfach mal auf. Kästchen für die Bytes im Speicher, Zeiger für die Adresswerte, die auf diese Kästchen zeigen.

Grüsse
Stefanie