Das sieht man auch schon deutlich an stark unterschiedlichen Adressen:
Code: Alles auswählen
Debug @"Statischer String"
Define s.s = "Dynamischer String"
Debug @sCode: Alles auswählen
;1. Eine Struktur mit allen Variablen
Structure vTable
EinInteger.i
EinByte.b
EinString.s
;...
EndStructure
;2a. Wir können alle Variablen im Programm speichern
DataSection
Default_Values:
Data.i 1337
Data.b 23
Data.i @"Hallo Welt!"
EndDataSection
*vars.vTable = AllocateMemory(SizeOf(vTable))
CopyStructure(?Default_Values, *vars, vTable)
Debug *vars\EinInteger
Debug *vars\EinByte
Debug *vars\EinString
*vars\EinString = "Neuer viel längerer String um zu sehen, dass nichts passiert, weil dieser Strings sich in einem ganz anderen Speicherbereich befindet wie der ursprüngliche in der DataSection."
Debug *vars\EinString
;Zurücksetzen
CopyStructure(?Default_Values, *vars, vTable)
Debug *vars\EinInteger
Debug *vars\EinByte
Debug *vars\EinString