EmxArray_real_T a C # struct plus initialisation

Estoy tratando de crear un 'constructor' para esta estructura C # (intento inicial incluido):

[StructLayout(LayoutKind.Sequential)]
public struct emxArray_real_T
{
public IntPtr data;
public IntPtr size;
public int allocatedSize;
public int numDimensions;
[MarshalAs(UnmanagedType.U1)]
public bool canFreeData;

public emxArray_real_T(double[] cSharpData)
{
    var arraySize = Marshal.SizeOf(cSharpData[0]) * cSharpData.Length;
    this.data = Marshal.AllocHGlobal(arraySize);
    // ????
    numDimensions = 1;
    canFreeData = false;
}
}

La estructura de C correspondiente a C se parece a esto:

typedef struct emxArray_real_T
{
   real_T *data;
   int32_T *size;
   int32_T allocated;
   int32_T numDimensions;
   boolean_T canFreeData;
} emxArray_real_T;

y se explicaaquí.

Esperamos cualquier comentario / respuesta. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta