Whoops, ja da wird von FreeMemory ja auch der Pointer auf den Start des Adressbereichs verlangt.
Z.B. klappt ja auch nicht:
Korrekt funktioniert es bei Arrays mit Offset -16 (auch undokumentiert

) :
Habs oben im Code geändert.
[edit]Allerdings ist das dimensionieren nach PeekL(*arr)-8 sinnlos, da der Array-Pointer sowieso neu gesetzt wird, und dann auch die Dimensionen des neuen Arrays übernommen werden. Habs mal geändert auf Dim LocalArray.l(0).
Für die 20 Bytes kann man sich allerdings das FreeMemory auch fast sparen

[/edit]