在什么时候为C#中的数组分配内存

时间:2013-11-12 16:11:28

标签: c# arrays memory

使用此示例int[] scores = new int[5];

是否在声明int []或使用关键字new时留出了内存位置?

由于

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

Variable Initialization