数组只是一个语法概念,可以认为你是要分配一段连续的内存,在应用层有2种方式:
全局变量的方式,在函数外声明,最大应该不能超过4G Byte(32bit寻址最大值),int就除与4,doubel再除2
局部变量的方式,在函数内声明,属于栈内存,就更小,确实跟操作系统和C库相关,进程都有栈限制的,可以输入命令ulimit查看,默认也就10K左右,当然你可以设置更大。
不会有数专门说这个数组大小的问题,它涉及的知识点会,栈内存,data 段,以这些为关键字去看,整理理解吧。
应该是65535个字节的位置
一个32位的小程序,申请的内存空间是65535个字节大小,多了报错
也就是说所有的变量所占用的空间不能超过65535个字节,要不然编译不通过,呵呵
c语言嘛,应该是想多大就多大,当然得保证不会更改其他进程的内存前提下,毕竟数组定义是申请一段连续空间。
你也可以通过malloc函数申请很大的空间,几万即十万都没什么问题……当然内存最好有那么大的连续空间
这个跟你的系统配置【栈大小】有关:
定义的变量空间都是在栈上的。