2013-09-27 38 views
4

int數組佔用多少空間?或者int數組消耗多少空間(字節),看起來像這樣:如何在int數組中分配內存

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

內存分配語言是否特定?

謝謝大家

+3

您忘記了'C'和'phtyon'標籤。 –

+0

這是非常特定的語言。首先選擇一種語言。 – Joni

+0

在java中,頭部分應該是固定大小的,並且對齊添加是可變的,因此對於64位系統/ os/jvm,它必須大於elementNumber * 4 + 8。 –

回答

3

既然你添加的語言標記了很多,我想要寫C#。在C#中,這取決於操作系統。

對於32位,每個int爲4字節和4字節也可用於參考的對象,使得4 * 4 + 4 = 20字節

對於64位,每個int爲4字節和8字節也用於參考該對象,這使得4 * 4 + 8 = 24字節

C# 5.0 in a Nutshell在第22頁;

每個引用一個對象需要額外的四個或八個字節, 取決於.NET運行是否是在一個32位或64位 平臺上運行。

+0

因此,當我使用32位操作系統時,它使得它成爲80字節...你也可以解釋字節作爲參考,這是我被困住的地方 – Rohit

+0

還有12個字節的數組對象本身的開銷(對於32位代碼) –

+0

@MatthewWatson那12個字節是什麼? –

2

在C++中,new int[4]{1, 2, 3, 4}實際分配多少內存是實現定義的,但數組的大小將是sizeof(int)*4

+0

當我寫這個答案時,這個問題有C++標記。 – Simple

+0

語法不是C++,所以我刪除了標記。 –

+0

完全沒有問題 – Rohit

1

問題是:內存分配語言是否特定? 是存儲器分配是語言specific..it根據語言而異.. 爲EXP: 的sizeof(int)的* 4在Java

INT大小是4字節,以便內存消耗:4×4 = 16字節

1

這取決於語言,而且還取決於操作系統。

你需要4個整數。通常一個整數是2或4個字節(在大多數系統上大多數是4),但要確保檢查sizeof(int)。 (也請記住,根據操作系統的不同,值可能會有所不同),例如MSB優先或LSB優先(或者在使用4個字節的情況下混合使用)。