Hi,

in my attempt to generalise the piece of code suggested by Petr, I've faced this error for which I didn't see the reason.

arrayclone1.tbasic.LastRunTimeError.ini
[Script]
Main=T:\_DEV\arrayclone1.tbasic
Include=
[RunTimeError]
DateTime=26/10/2019 16:31:40
Code=20
Description=Missing Close Parens ')'. Expected a ')' but found something else.
Line=27
LineCode=ME.ARRAYCLONE(ARR, ME.MYARRAY)
Token=ME
Additional=
arrayclone1.tbasic

'---Script created on 10-26-2019 16:13:36 by 
uses "Console"
 
type Vector3D
  x as float32
  y as float32
end type

type util

  myarray() as Vector3d

  function  arrayClone(byref arr() as anytype, byref arr_copy() as Anytype)

    redim arr_copy(ubound(arr))

    'see https://www.thinbasic.com/community/showthread.php?12974-STAT_CLONEARRAY-and-UDT
    ' This is like "copy bytes from start of the array, of total length calculated like number-of-elements * size-of-element and store them to string"
    ' VarPtr is "variable pointer"
    string binary = peek$(varptr(arr(1)), CountOf(arr(1))*SizeOf(arr(1)))
    ' This is like - "paste the binary string at place starting at beginning of arr_copy"
    poke$(varptr(arr_copy(1)), binary)
    
  end function

  function SaveIt(arr() as Vector3d)
    me.arrayClone(arr, me.myarray)
  end function

end type

dim arr(3) as Vector3D
dim arr_copy(3) as Vector3D
dim test as util

int32 i
 
for i = 1 to ubound(arr)
  arr(i).x = i
  arr(i).y = i
next

test.SaveIt(arr)
 
printl "Source array:"
for i = 1 to ubound(arr)
  printl arr(i).x, arr(i).y
next
 
 
printl
 
 
printl "Copied array:"
for i = 1 to ubound(arr)
  printl test.myarray(i).x, test.myarray(i).y
next
 
 
waitkey