大数组定义在main函数中不能执行,为什么将其定义为全局变量就可以执行?
展开全部
数组定义在函数中时,占用的内存来自栈空间,栈空间是在进程创建时初始化的,有固定的大小,一般为几十KB,所以太大的数组会耗光栈空间。
而全局变量占用的堆空间,堆空间中的内存是按需分配,自由增长的,可以非常大,32位的系统中可以大到4GB。
------------------------------------------------------------------
楼下说得对,我记错了。堆空间是malloc()的。
全局变量是在编译的时候编到数据段的,可以比较大。
而全局变量占用的堆空间,堆空间中的内存是按需分配,自由增长的,可以非常大,32位的系统中可以大到4GB。
------------------------------------------------------------------
楼下说得对,我记错了。堆空间是malloc()的。
全局变量是在编译的时候编到数据段的,可以比较大。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询