如果我有一个未初始化数组的类,那么它将使用多少内存?
示例代码:
public class myClass
{
int x;
public objClass[] objArr;
}
public class objClass
{
int y;
int z;
}
myClass m0 = new myClass();
//vs
myClass m1 = new myClass();
m1.objArr = new objClass[0];
//vs
myClass m2 = new myClass();
m2.objArr = new objClass[2];
m0
会比m1
和m2
使用更少的内存吗?
答案 0 :(得分:1)
如果我有一个未初始化的数组有多少类 记忆会用吗?
是的。
如果不初始化数组,则将以指向0x0(空)的指针结尾,该指针使用4个字节存储指针。
如果初始化它,则它将使用该数组的4字节指针+空间。
但这确实应该是您最不关心的问题,直到遇到内存消耗问题为止。 .NET将负责Ya的内存管理。
答案 1 :(得分:0)
由于这很可能是在Windows(这是带有请求代码的分页虚拟内存操作系统)下,因此您只需保留虚拟内存。如果您在“任务管理器”中监视过程并启用“提交大小”列,则可以看到预留了多少。
所以
如果我有一个未初始化数组的类,那么它将使用多少内存?
它将不使用任何内存,它只会提交指针的大小加上数组的大小,而只会提交,一旦您首次启动i,操作系统就会为您分配此内存。