数组定义的最大长度是多少??c语言

如题所述

没有上限,和本机的系统(32bit,64bit)CPU以及内存有关系
而且,要使用malloc和sizeof来开放free领域

32bit CPU的时候、int = 4byte
256*256*256*16*4 = 1024M=1G(内存)

int *array ;
array = (int *)malloc( 256 * 256 * 256 * 16 * sizeof(int ));
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-29
数据定义的长度跟你系统栈的大小有关系。所以有些大的数组在函数体内定义的时候,会导致你的程序直接崩溃,而解决这个问题的方法就是在函数体内用malloc来分配内存空间。本回答被提问者采纳
第2个回答  2010-08-29
栈空间相关
第3个回答  2010-08-28
内存的最大容量

数组定义的最大长度是多少??c语言
256*256*256*16*4 = 1024M=1G(内存)int *array ;array = (int *)malloc( 256 * 256 * 256 * 16 * sizeof(int ));

C语言的数组最大可以定义多长,求高手解答,请不要很笼统说是系统内存什...
数组只是一个语法概念,可以认为你是要分配一段连续的内存,在应用层有2种方式:全局变量的方式,在函数外声明,最大应该不能超过4G Byte(32bit寻址最大值),int就除与4,doubel再除2 局部变量的方式,在函数内声明,属于栈内存,就更小,确实跟操作系统和C库相关,进程都有栈限制的,可以输入命令...

C语言数组的最大长度
C语言支持定义一个不显式定义长度的数组,即通过初始化数据来分配数组长度。比如int a[] = {1,2,3,4,5}; 数组a的长度没有显式给出,由于有5个初始化数据,所以分配空间长度为5个int型。但是无论如何定义,数组的长度都是固定的,在定义的时候就已经分配好空间,从这个角度上C语言无法定义无限...

关于C语言中定义数组大小的问题(最多能定义多少)
也就是说,只要硬件条件许可的条件下,数组的大小可以为0x7CFFFFFF(2G BYTE)。数组所占空间为:count*sizeof(TYPE) , count是数组元素的个数,sizeof(TYPE) 是一个元素所占空间字节数。如果定义数组空间超出2G,VC编译会报错:fatal error C1126: '2G' : automatic allocation exceeds 。。。因...

c语言数组最大长度
理论上,c语言数组最大的大小没有限制,因为它用的是 虚拟存储。对于写程序而言,例如要写下标,那么受 unsigned int 最大值的限制,只能用到十六进制 0xffffffff, 十进制4G多一点。具体程序能获取多大,就很难说,有时编译可以通过,运行时出错。你也可以用 malloc 动态分配请求,看分配是否成功或...

c语言中最大可以申明多大的数组?
由于数组申请的是连续存储空间,所以存在最大申请的限制,也就是说最大申请空间不能大于当前的栈空间 栈空间是可调的,默认的应该为1M,但是最大值也不会大于全部栈的总size 如果是动态申请的话(例如,动态数组,链表等),则和堆的大小有关系 ...

c语言的数字定义怎么突破上限,比如a[b][c],b和c最大定义到多少有上限...
a[b][c] 里的方括号在c \/ c++ 中 实际上是运算符。要说有什么限制,那么极限数值 b*c 是 int 型允许范围 和 unsigned int 地址值的极限数值。MS VC++ 6.0 限制为: 268435456 例如:include <stdio.h> define BC 8000 int a[BC][BC]; \/\/ 要用全局量 main(){ int i;for (...

c语言里数组的最大长度是多少?
与机器条件、内存空间以及程序运行所用空间和编译器有关。好点的机器 1000000是能到的。我的电脑是98年的,只能到100000

c语言二维数组允许定义的最大值
你定义多大就会申请多大的内存,所以这个错误主要看你的机器的内存大小以及编译器允许的内存大小,一般机器char的最大范围在10^7左右int在10^6左右,你是10^8级别太大了 如果用超级计算机就是非常大也没有问题的。二维数组没有定义的最大值的限制,主要是内存限制 ...

c语言中的数组最大值是多少?
include<stdio.h> int main(){ int a,b,c,max;printf("请输入三个数:\\n");scanf("%d%d%d",&a,&b,&c);if(a>b)max=a;if(c>max)max = c;printf("三个数中最大的数为:%d",max);return 0;}

相似回答