DLLに構造体を渡したい場合に、固定長配列であれば

public struct test {
...
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public Int32[] fixed;
}

のようにすれば動くことは確認できたのですが
可変長のときにどうすればよいかがわかりません。
可変長のときはどのようにすればよいのでしょうか?