2D integer array
中C
可包含的元素数量是否有限制?
PS:我期待在声明一个阵列时会有一些空间限制,但在互联网上找不到任何这样的参考。
答案 0 :(得分:1)
这取决于您的RAM
或可用内存。
i:e:
当我声明一个全局数组a[100000][10000]
时,我的程序曾经崩溃,但是现在这个系统的声明很好。
答案 1 :(得分:-1)
size_t
类型被定义为足以包含程序中任何对象的大小,包括数组。因此,最大可能的数组大小可以描述为2^(8*sizeof(size_t)
个字节。
为方便起见,可以通过limits.h中的SIZE_MAX
常量获取此值。它保证至少为65535但实际上是一个更大的值,32位系统上最可能为2 ^ 32,64位系统上为2 ^ 64。
答案 2 :(得分:-1)
C / C ++标准规定的最大值:x * y * z <= SIZE_MAX
,其中SIZE_MAX是实现定义的,x是数组的一个维度,y是另一个维度,z是元素的大小(以字节为单位)。例如element_t A[x][y]
,z = sizeof(element_t)
。