【问题标题】:At what point is memory allocated for an Array in C# [duplicate]在什么时候为 C# 中的数组分配内存
【发布时间】:2013-11-24 21:33:12
【问题描述】:

使用这个例子int[] scores = new int[5];

内存位置是在声明 int[] 时还是在使用关键字 new 时预留的?

谢谢

【问题讨论】:

标签: c# arrays memory


【解决方案1】:

首先,我注意到你没有说声明是局部的、类类型的字段还是结构类型的字段。假设它是本地的。

声明为变量scores分配了一个存储位置,该变量包含一个reference。这个存储位置可能是堆栈位置、堆位置或寄存器;由 C# 编译器和抖动共同决定哪个是最好的。

new[] 为数组分配内存。其结果是对数组的引用,该数组存储在与scores 关联的位置。

【讨论】:

    【解决方案2】:

    这个答案有很多,堆栈/寄存器和 GC 堆都为此发挥作用。通过价值和参考也会产生影响,而不是全部解释,这里是一个类似问题的链接。

    Variable Initialization

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 2015-11-23
      • 1970-01-01
      • 2015-01-22
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多