c# - 类中未初始化的数组是否使用内存?
问题描述
如果我有一个带有未初始化数组的类,那将使用多少内存?
示例代码:
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
使用更少的内存吗?m1
m2
解决方案
如果我有一个带有未初始化数组的类,那将使用多少内存?
是的。
如果你不初始化数组,那么你最终会得到一个指向 0x0 (null) 的指针,它使用 4 个字节来存储指针。
如果您对其进行初始化,那么它将使用该数组的 4 字节指针 + 空间。
但这应该是您最不关心的问题,直到您遇到内存消耗问题。.NET 将为您处理内存管理。
推荐阅读
- boxplot - 为什么汽车包中的 Boxplot 函数不返回所有异常值?
- google-sheets - 应用程序脚本 getValue 内容仅不是公式
- pandas - 如何在 mplfinance 的每条线上添加点(ohlcv 绘制为线)变化?
- julia - Julia中的结构继承
- r - 从日期时间中提取时间分量(格式 - HH:MM:SS 和 HH:MM)
- javascript - 如何仅上传输入类型文件中的文件而不发送整个表单?
- msbuild - 如何在输出中包含自定义目标生成的额外文件?
- c++ - 如何在构造函数中初始化字符串[20]?
- database - 无法将联系人保存到本地数据库中
- javascript - 根据对象中的键名过滤对象数组