- A workaround might be to pass an array of zstring pointers:

Sub test(pz() As Zstring Ptr)
    For i As Integer = Lbound(pz) To Ubound(pz)
        Print *pz(i)
    Next I
End Sub

Dim As Zstring Ptr pz(...) = {@"one", @"two", @"three"}
test(pz())

Sleep
one
two
three

- Another workaround might be to define your zstring into a Type and then pass an array of Type elements:

Type elements:
Type myZstring
    z As zstring * 10
End type

Sub test(mz() As myZstring)
    For i As Integer = Lbound(mz) To Ubound(mz)
        Print mz(i).z
    Next I
End Sub

Dim As myZstring mz(...) = {Type("one"), Type("two"), Type("three")}
test(mz())

Sleep
one
two
three