-2

有什么方法可以手动计算数组将要消耗的内存。

我在 64 位操作系统中使用 languaje C#

假设我有下一个数组:

int number[][]= new int[2][2];
number[0][0]=25;
number[0][1]=60;
....
...

所以我的第一个问题是,数组的每个维度都有相同的位分配?可以说 number[0][0] 有一个 12 位的 asing(如果 12 位是正确的答案,我现在不知道)所以这将使第一行成为 24 位的内存 asing?

每个维度需要多少财政和虚拟内存?

如果我对数组使用 int、double 或 string,是否有任何不同的内存要使用?

最后,如果我使用 GC.GetTotalMemory,我会得到与数组使用的内存总量相同的结果吗?

4

1 回答 1

1

您需要使用 sizeof 函数来获取分配给您的类型的字节数。

int number[][] = new int[2][];
for (int i = 0; i < number.Length; i++)
{
    number[i] = new int[2];
}

int size = sizeof(int) * number.Length * number[0].Length;
于 2012-10-09T17:22:49.323 回答