C语言的数组最大可以定义多长,求高手解答,请不要很笼统说是系统内存什么的还是硬件限制,麻烦详细解释一

比如我这样定义一个数组inta[X],那么X最大能是多少,如果是float,double呢?我有C的一些书,顺便告诉我去看什么内容会提到这个问题如果可以,麻烦高手给我完全... 比如我这样定义一个数组
int a[X],那么X最大能是多少,如果是float,double呢?
我有C的一些书,顺便告诉我去看什么内容会提到这个问题
如果可以,麻烦高手给我完全详细解释一下,十分感谢
展开
 我来答
匿名用户
2012-10-22
展开全部

数组只是一个语法概念,可以认为你是要分配一段连续的内存,在应用层有2种方式:

  1. 全局变量的方式,在函数外声明,最大应该不能超过4G Byte(32bit寻址最大值),int就除与4,doubel再除2

  2. 局部变量的方式,在函数内声明,属于栈内存,就更小,确实跟操作系统和C库相关,进程都有栈限制的,可以输入命令ulimit查看,默认也就10K左右,当然你可以设置更大。


不会有数专门说这个数组大小的问题,它涉及的知识点会,栈内存,data 段,以这些为关键字去看,整理理解吧。

cpucash
2012-10-21 · TA获得超过1585个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:976万
展开全部
应该是65535个字节的位置
一个32位的小程序,申请的内存空间是65535个字节大小,多了报错
也就是说所有的变量所占用的空间不能超过65535个字节,要不然编译不通过,呵呵
追问
也就是说,我定义的数组,取决于数据类型和65535????
每台计算机都一样的吗?
如果要更长的数组,我需要怎么办?
可一个我弄个例子解释一下吗
追答
我记得在tc或者win-tc下编译程序,申请的变量空间超过65535个字符时报错的
vc我不会用,呵呵,不知道
也许用malloc这个函数再申请内存空间可以吧,我也没有试过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eiilpux17
2012-10-21 · TA获得超过802个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:405万
展开全部
c语言嘛,应该是想多大就多大,当然得保证不会更改其他进程的内存前提下,毕竟数组定义是申请一段连续空间。
你也可以通过malloc函数申请很大的空间,几万即十万都没什么问题……当然内存最好有那么大的连续空间
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6a2414
2012-10-21
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
这个跟你的系统配置【栈大小】有关:
定义的变量空间都是在栈上的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式