首页 > 解决方案 > 什么定义了 C 中全局数组的最大大小?

问题描述

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

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

标签: cmemory-managementglobal-variables

解决方案


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

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


推荐阅读