在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个数组中的double数组尚未分配,因此为空。

您可以使用以下形式填充它:double-double-3-doubles(例如):

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


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

关于c# - C#中的C++锯齿状数组切片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20483998/

10-10 11:49