首页 > 解决方案 > 类中未初始化的数组是否使用内存?

问题描述

如果我有一个带有未初始化数组的类,那将使用多少内存?

示例代码:

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];

会比andm0使用更少的内存吗?m1m2

标签: c#.net

解决方案


如果我有一个带有未初始化数组的类,那将使用多少内存?

是的。

如果你不初始化数组,那么你最终会得到一个指向 0x0 (null) 的指针,它使用 4 个字节来存储指针。

如果您对其进行初始化,那么它将使用该数组的 4 字节指针 + 空间。

但这应该是您最不关心的问题,直到您遇到内存消耗问题。.NET 将为您处理内存管理。


推荐阅读