什么决定了数组的最大大小?

问题描述 投票:0回答:1

我知道数组大小有上限。我想了解是什么决定了数组的最大大小?有人可以给一个简单的详细解释吗?

arrays memory malloc ram processor
1个回答
0
投票

取决于语言,库,操作系统。

对于大多数语言默认提供的内存中数组,上限是为进程分配的地址空间。对于Windows,对于32位应用程序,该大小为2或3 GB,对于64位应用程序,该大小为8 TB和(物理RAM +页面文件大小限制)中的较小者。

对于使用磁盘空间(非常缓慢)访问阵列的自定义库,限制可能是最大存储卷的大小。使用RAID和10+ TB驱动器可能是非常大的数目。

一旦知道数组的内存限制,元素数量的上限就是(内存/元素大小)。如果元素较小,则实际限制通常会较小,因为数组寻址可能使用只能寻址4 GB元素的32位无符号整数。

这是用于C ++之类的语言提供的简单连续的类型化数组。可以定义a['hello'] = 'bobcat'; a[12] = 3.14;的PHP之类的语言更像是映射,并且每个元素可以使用更多的内存,因为它们存储索引的值

© www.soinside.com 2019 - 2024. All rights reserved.