什么定义了 C 中全局数组的最大大小?

What defines the maximum size of a global array in C?

假设我在我的 C 程序中声明了一个全局数组(即它没有在堆栈内存中分配)。

我可以创建的最大数组是多少?这只是机器上可用内存的限制吗?或者是否有其他一些 OS 设置通常控制它?

C 中的数组大小没有单一的最大限制。在任何特定的实现中,它可能受到实际可用内存的限制(根据操作系统特性,主内存或磁盘上的交换 space和设置)、系统操作员设置的策略、地址的能力 space、编译器的限制以及可能的其他因素。

限制可能是一个系统中的可用内存和另一个系统中的地址 space。