C# 如何在int数组中分配内存
整数数组占用多少空间?或者一个int数组消耗多少空间(以字节为单位),如下所示:C# 如何在int数组中分配内存,c#,java,arrays,oop,C#,Java,Arrays,Oop,整数数组占用多少空间?或者一个int数组消耗多少空间(以字节为单位),如下所示: int[] SampleArray=new int[]{1,2,3,4}; 内存分配语言是特定的吗 谢谢C++中的所有< P>,内存多少 new int(4){ 1, 2, 3,4 } /CODE实际上分配的是实现定义,但是数组的大小将是代码> siZeof(int)*4 < /C> > < P/> < P>是:内存分配语言具体吗? 是的,内存分配是特定于语言的。它随语言而异。。 对于exp: 尺寸(整数)*4
int[] SampleArray=new int[]{1,2,3,4};
内存分配语言是特定的吗
谢谢C++中的所有
< P>,内存多少<代码> new int(4){ 1, 2, 3,4 } /CODE实际上分配的是实现定义,但是数组的大小将是代码> siZeof(int)*4 < /C> > < P/> < P>是:内存分配语言具体吗? 是的,内存分配是特定于语言的。它随语言而异。。 对于exp: 尺寸(整数)*4在java中,int size是4字节,所以内存消耗是:4*4=16字节,这取决于语言和操作系统 你需要4个整数。通常一个整数是2或4个字节(在大多数系统上主要是4个字节),但一定要检查sizeof(int)
(还请记住,值可以根据操作系统的不同而不同地表示),例如MSB first或LSB first(或者在使用4个字节的情况下混合使用)。在Java int[]数组中,是一个对象,它在内存中由头(x86为8个字节)和int length字段(4个字节)表示,后跟int数组(arrayLength*4)
更多信息请参见这里因为您添加了很多语言标记,我想为C#编写。在C#中,这取决于操作系统 对于32位,每个
int
是4字节,4字节也用于引用对象,即4*4+4=20字节
对于64位,每个int
是4字节,8字节也用于引用对象,即4*4+8=24字节
摘自第22页
每个对对象的引用都需要额外的4或8个字节,
取决于.NET运行时是在32位还是64位上运行
站台
您忘记了
C
和phtyon
标记。这是非常特定于语言的。在爪哇,有一个标题部分,它是固定大小的,并且是一个对齐的添加变量,所以它必须大于4位/*/jvm的元素号*++1。这个问题在C++中有C++标记。因此,我删除了标记。这使它成为80字节,因为我使用的是32位操作系统…您能解释一下字节以供参考吗?这就是我的位置stuckedAlso数组对象本身的12字节开销(对于32位代码)@MatthewWatson这12字节是干什么用的?
approxSize = 8 + 4 + 4 * arraylength