Moin PASST,
Zitat von
PASST:
Noch eine letzte Frage. Was bedeutet [1] bei LString[1] genau?
Zitat von
PASST:
Meine Vermutung ist, da wir die ganze Zeit von Speicheradressierung sprechen, dass hiermit die erste Speicheradresse, die für LString reserviert wurde, gemeint ist. Wenn ich also LString[10] schreibe, würde in den ersten 9 Bytes der für LString reservierten Speicheradressen ein zufälliger Inhalt stehen. Richtig?
Zitat von
PASST:
Ok und vielen Dank, ich habe es verstanden.
Sieht so aus, denn Deine Vermutung trifft's genau.
Du musst dann halt nur berücksichtigen, dass Du, um im obigen Beispiel zu bleiben, auch nur noch 41 Byte lesen darfst, statt 50.
[EDIT]
Wobei noch anzumerken wäre, dass der Compiler intern einen String immer mit #0 abschliesst, also ein Byte mehr belegt, als length zurückliefert, damit man diese an C-Funktionen (die i.d.R. Nullterminierte Strings verwenden) übergeben kann, ohne sich um die abschliessende #0 kümmern zu müssen. Das ist dann speziell bei Aufrufen von Funktionen der Windows-
API wichtig.
[/EDIT]