【发布时间】:2018-07-14 07:43:12
【问题描述】:
我有一个关于 C# 中的锯齿状数组的问题,当我在互联网上某处读到关于锯齿状数组的内容时,我认为 C# 中二维锯齿状数组的内存分配与 C++ 中二维数组的内存分配相同,因为2d 锯齿数组有一个指针数组,每个指针都指向一个元素数组(例如整数元素)我的意思是 C++ 中数组的内存分配如下:
int** twoDArr {new int* [number1]};
for (int i = 0; i < number1; i++)
{
twoDArr[i] = new int[number2];
}
与C#中二维交错数组的内存分配相同:
int[][] 2DJaggedArray = new int[number1][];
for (int i = 0; i < 2DJaggedArray.GetLength(0); i++)
{
2DJagggedArray[i] = new int[number2];
}
但我不确定,所以请您告诉我我是否正确,如果正确,您能否解释一下 C# 中二维数组的内存分配方式,例如下面的数组:
int[,] 2DArray = new int[number1,number2];
谢谢。
【问题讨论】:
-
我不认为 C++ 中的标识符可以以数字开头...代码可以编译吗?
-
我编辑了那个。谢谢,但我的问题与上面链接中的问题不同,我确信在上面的链接中,C++ 和 C# 中数组的内存分配没有比较。
-
不,因为在您提到的链接中,没有任何关于指针以及 C# 中的二维数组如何在内存分配过程中使用指针的解释。
标签: c# dynamic-memory-allocation jagged-arrays