..wenn ich etwas ins Array schreibe, müsste das doch auch im String liegen, ..
Das ist korrekt. Auf diese Weise kann man am besten byte-weise beliebige andere Feldtypen verschicken und empfangen

Variante string byteweise lesen:
Code:
DIM mystring as string * 20

DIM adr as word
DIM einbyte as byte
  mystring = "Hello, world"
  adr = varptr(mystring)
  do Loop
    einbyte = INP(adr)
    if einbyte = 0 then exit do
    print chr(einbyte);
    incr adr
  next
  print
Schreiben geht ähnlich mit "OUT" (-->Help)

Vorteil: du mußt nicht alle Felder doppelt definieren