调用数组的数组

本文关键字:数组 调用 | 更新日期: 2023-09-27 18:13:41

我搜索了这个问题,但谷歌没有给出任何答案。有办法封送数组的数组吗?

//C
typedef struct SomeStruct
{
    float matrix[7][12];
} SomeStruct;
//C#
public struct SomeStruct
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = ???)]
    public float[][] matrix;
}

调用数组的数组

你必须在c#代码中使用线性数组:

public struct SomeStruct
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7*12)]
    public float[] matrix;
}

为了方便起见,您需要将2D索引转换为线性索引。

int LinearIndex(int i, int j)
{
    return i*12 + j;
}