如何在int数组中分配内存

时间:2013-09-27 11:14:16

标签: c# java arrays oop

int数组占用多少空间?或者int数组消耗的空间(以字节为单位)看起来像这样:

 int[] SampleArray=new int[]{1,2,3,4};

内存分配语言是否具体?

谢谢大家

5 个答案:

答案 0 :(得分:5)

由于你添加了很多语言标签,我想写C#。在C#中,这取决于操作系统。

对于32位,每个int是4字节和4字节也用于引用对象,这使得4 * 4 + 4 = 20字节

对于64位,每个int是4字节和8字节也用于引用对象,这使得4 * 4 + 8 = 24字节

来自第22页的C# 5.0 in a Nutshell;

  

每个对象的引用都需要额外的四个或八个字节,   取决于.NET运行时是在32位还是64位上运行   平台。

答案 1 :(得分:2)

在C ++中,实际分配的内存new int[4]{1, 2, 3, 4}是实现定义的,但数组的大小为sizeof(int)*4

答案 2 :(得分:1)

问题是:内存分配语言是否具体? 是的内存分配是语言特定的...根据语言不同.. 对于exp: 的sizeof(int)的* 4

java中的

int size是4byte,因此内存消耗为:4 * 4 = 16bytes

答案 3 :(得分:1)

它取决于语言,但还取决于操作系统。

你需要4个整数。通常一个整数是2或4个字节(在大多数系统中大多数为4),但要确保检查sizeof(int)。

(还要记住,值可以根据操作系统的不同而不同),如MSB优先或LSB优先(或者使用4字节的混合)。

答案 4 :(得分:1)

在Java中,int []数组是一个Object,它在内存中由标题(x86为8个字节)和int长度字段(4个字节)表示,后跟int数组(arrayLength * 4)。

   approxSize = 8 + 4 + 4 * arraylength 

点击此处http://www.javamex.com/tutorials/memory/object_memory_usage.shtml