c#中的c++锯齿状数组切片

c++ jagged array slice in c#

本文关键字:数组 切片 锯齿状 c++ 中的      更新时间:2023-10-16

在c++中,可以获得多维数组的切片,如

  double parallelopipedPts[8][3];
  parallelopipedPts[0];
  parallelopipedPts[1];
  ...
  parallelopipedPts[7];

在c#中,我试图模仿这一点,并尝试了

  double[][] parallelopipedPts = new double[8][];
  parallelopipedPts[0];
  parallelopipedPts[1];
  ...
  parallelopipedPts[7];

然而,我得到内存访问问题

如何解决这个问题?

在C#代码中,您创建了一个由8个"双数组"组成的数组。

该数组中的双数组(共8个)尚未分配,因此它们为空。

你可以用数组的三个双(例如)来填充它,如下所示:

for (int i = 0; i < parallelopipedPts.Length; i++)
{
    parallelopipedPts[i] = new double[3];
}

然后您可以安全地使用您的子阵列。