【发布时间】:2013-09-26 12:06:55
【问题描述】:
我以这种方式在 c# 中实现了类似树的东西:
public class node {
public node parent = null;
public node leftChild = null;
public node rightChild = null;
}
现在在我下面写的代码的某个地方
node firstNode = new node();
firstNode.rightChild = new node();
firstNode.rightChild.parent = firstNode;
我的问题是这段代码分配了多少内存?如您所见,没有任何变量,例如整数或双精度数。我想知道在这样的结构中我们不使用指针我们应该如何知道内存分配。我们确定这是存储在内存中但没有确切的变量来聚合所有这些并说这段代码分配这个内存量。 我想知道上面代码中“对一个实例的引用需要多少内存”
【问题讨论】:
-
这不是有效的 C# 代码。
-
这在语法上几乎不正确
-
你总是在运行时为变量分配内存,即使它只是你的平台基础。最重要的是,类定义会消耗内存。一个类的实例会消耗内存。如果您要具体询问对实例的引用需要多少内存(如上面的示例所示),您可以改写您的问题。
-
您正在查看每个引用的平台
WORD大小和对象的通常开销.. 例如带有类型对象指针(使用 vtable 等)的标头,同步块索引.. 真的不过..这有什么关系?
标签: c# data-structures tree