how can i define a struct with a dynamic sized array?
is it right?
struct MyStruc {
public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}
how can i define a struct with a dynamic sized array?
is it right?
struct MyStruc {
public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}
Assuming that you want a struct containing a pointer to the array.
Declare the pointer to the array as
IntPtr
and marshal the array contents manually withMarshal.AllocHGlobal
,Marshal.Copy
etc.Assuming that you want a variable sized struct rather than a struct containing a pointer to the array.
You cannot marshal a variable sized struct using p/invoke. You have at least these two options:
Marshal.AllocHGlobal
,Marshal.Copy
etc.