数组长度相关

数组最大可以申请多大长度

为什么在函数中定义一个数组和定义一个全局的数组可以申请的空间的大小不一样?


在函数中不能定义一个太大的数组,否则程序无法执行。

 

但是作为全局变量就可以。

 

数组是静态分配的空间,应该是在栈上,数组你想分配100万个元素的话,如果是char数组,占用的空间就是1M,如果这个值超过了允许的栈空间大小,肯定会出错的。

函数体内的数组存在于stack,函数体外的或者用static声明的数组存在于data,变量存储的内存空间不同,所以大小限制自然不同

#include<stdio.h>
#define N 100000000 //1亿
int arr[N];//   在堆上可以 

int main(int argc,char**argv)
{
    int b[N];//在程序栈上,要报段错误的,如果N在百万级别以下,还是可以得,也就是在栈上分配空间是有限的
    static int a[N];//在堆上,可以
    return 0;        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值