C# Marshal.AllocHGlobal(Marshal.SizeOf(输入))错误

C# Marshal.AllocHGlobal(Marshal.SizeOf(输入))错误,c#,pinvoke,C#,Pinvoke,input600是长度为600的浮点数组 IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(input600)); 上述语句引发以下错误: 类型“System.Single[]”不能作为非托管结构封送; 无法计算有意义的大小或偏移量 此声明有什么问题?来自以下文件: 此方法接受结构的实例,该实例可以是 引用类型或装箱值类型。布局必须是连续的或连续的 明确的 阵列不满足此要求。但是,假设数组元素类型是具有所需布局的结构的基元,您应该能够像这样计算空间

input600是长度为600的浮点数组

IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(input600));
上述语句引发以下错误:

类型“System.Single[]”不能作为非托管结构封送; 无法计算有意义的大小或偏移量

此声明有什么问题?

来自以下文件:

此方法接受结构的实例,该实例可以是 引用类型或装箱值类型。布局必须是连续的或连续的 明确的

阵列不满足此要求。但是,假设数组元素类型是具有所需布局的结构的基元,您应该能够像这样计算空间需求:

IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(input600.GetType().GetElementType())*input600.Length);

引发以下错误-找不到类型或命名空间名称“input600”是否缺少using指令或程序集引用?