如何确定?这取决于编译器/架构/主机系统吗?
示例:
int array[0x8000000000000000];
对于x86_64位系统中的这一行,GCC输出:
Error "size of array 'array' is too large".
答案 0 :(得分:17)
通过静态数组,我假设,你的意思是一个固定长度的数组(静态分配,如int array[SIZE]
,不动态分配)。数组大小限制应取决于声明的数组的范围。
ulimit -a
查看并ulimit -s STACK_SIZE
修改堆栈大小。static int array[SIZE]
),则再次将数组存储在DATA或BSS部分中(基于数组是分别初始化还是未初始化)。 DATA和BSS部分大小由底层OS确定。