Da hab ich mir gedacht ich übersetz den Skript in eine Art Bytecode (mit selbstausgedachtem Aufbau) und damit bei den Bedingungen der Zugriff auf die beiden verglichenen Werte möglichst schnell ist, wollte ich direkt mit Pointern drauf zugreifen, also die Pointer auf die Variablen einfach in den Bytecode schreiben.
Und so hätte ich nen Pointer als Integer in den Array gespeichert. Hab mal gehört, dass Arrays zusammenhängende Speicherbereiche sind, und bin daher auf folgende Idee für das Speichern gekommen. Funktioniert ... aber wahrscheinlich nicht der beste Weg für sowas.
Andererseits hab ich mal gehört, dass Integer nicht wirklich für das Speichern von Pointern geeignet sind.
Hat vielleicht jemand ne bessere Idee?
Code: Alles auswählen
; Array, eigentlich aus Bytes
Dim blub.a(10)
; Die Bytes 3 bis 6 speichern den Pointer...
pos = 3
; Wert des Integers, soll dann später als pointer funktionieren
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
x.i = 1234567890
CompilerElse
x.i = 12345678904321
CompilerEndIf
Debug x
; Reinschreiben
PokeI(@blub(pos), x)
; Überprüfen
Debug PeekI(@blub(pos))
; ... so sieht der Array in Bytes aus
Debug "----"
For foo = 0 To 9
Debug blub(foo)
Next