有没有办法手动计算数组要使用的内存。
我在64位操作系统中用于语言C#
假设我有下一个阵列:
int number[][]= new int[2][2];
number[0][0]=25;
number[0][1]=60;
....
...
所以我的第一个问题是,数组的每个维度都有相同的位符号?假设数字[0] [0]有12位asing(我现在不知道12位是正确的答案)所以这会使第一行成为24位内存吗?
每个维度需要多少fisical和虚拟内存?
如果我使用int,double或string作为数组是否有任何不同的内存使用?
最后,如果我使用GC.GetTotalMemory,我会重新获得数组使用的内存总量的相同结果吗?
答案 0 :(得分:1)
您需要使用sizeof函数来获取为Type分配的字节数。
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;