2011-03-18 22 views
0

可能重複:
What is the maximum length of an array in .NET on 64-bit Windows數組的長度/ LongLength

什麼是確切的最大理論大小在.NET中的x86平臺的陣列?是由Int32.MaxValue還是UInt32.MaxValue給出?

+0

的價值,我會說是間接式兩份最好的,這個問題本身當然給你,他們不重複的印象,但最後的答案似乎是相同的決定。 – 2011-03-18 11:05:37

+0

這又是一個理論上的限制,因爲地址空間本身受32位Windows上的2GB限制限制,因此不允許程序在CLR中達到該限制。 – 2011-03-18 11:11:24

回答

3

理論上它是2,147,483,647項(即2GB),它使用int。但是,考慮到數組是一塊連續的內存塊,並且一個進程只能有2GB的用戶空間,所以實際上無法填充這個大小的數組,因爲用戶空間中會有代碼和其他應用程序數據,會減少可用空間。

+0

在64位上,限制不在進程上,而在.net上(限制對象爲2GB)http://blogs.msdn.com/b/joshwil/archive/2005/08/10/450202.aspx – xanatos 2011-03-18 11:28:10

0

它是由Int32.MaxValue