理论上没有限制,实际上,计算机有物理内存大小限制,整型数也有最大值的限制。想开大的数组,可以用动态分配。定态数组,作为全局量可以开得大。例如:include <stdio.h> int a[1001][1001]; // 全局量 main(){ a[1000][1000]=1000;printf("%d",a[1000][1000]);return 0;} 若放到 main...
c语言默认最多是二维数组;当然如果用指针自己分配内存的话可以自行进行计算,进行更多维的表示。原则上,C语言中数组所包含的元素个数理论上多少都行,如果要开一个很大的数组,比如int arrayint[10000][10000];在main()中声明该数组就会使应用程序退出,但是如果把该数组的声明放在所有函数体之外,让...
一维数组能开到 4 9909 9039 (四亿多)二维数组能开到 2 2340 (两万多)这个数据是我在自己电脑上用codeblocks运行测试得到的结果如果数组大小稍微超过上面的两个数字不会报错,但是测试输出最后一位输出为空如果数组大小超过上面两个数字很多,例如五亿,那么会报错,无法编译成功看了一下这个数据,大概...
有上限。具体的数值看你在什么操作系统下了,在Linux下,在32位地址空间为4GB的前提下,操作系统占据1G,其余3G可以让应用程序本身使用,这包括代码、数据、栈空间、堆空间等。windows下有点内存布局也类似,只是具体的数值有点不一样。你说的“我记得C中局部变量的二维数组太大就会运行报错了,结果放全...
一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。本节只介绍二维数组,多维数组可由二维数组类推而得到。
前面介绍了一维数组,接下来介绍如何定义和使用二维数组。 二维数组定义的一般形式如下: 类型说明符 数组名[常量表达式1][常量表达式2] 与一维数组的定义唯一的不同是多了一个常量表达式2,其中,常量表达式1为第一维的长度,常量表达式2为第二维的长度。通常在处理二维数组的时候,为了便于理解,都将数组视为一个矩阵,...
二维数组不是按基本的数据类型读内容,因为每行中的列不同,上例中,每移动一行的指针,内存跨度为46=24B,是一块一块的内存。 正确写法为:int (p)[6]; //p是整体,[6]每行二维数组的列数。 故示例中应改为: int (p2)[6] = b; //在内存中指针移动或指代的方式根据之前的int和之后的[]修饰 int b[...
int (*p)[4];//是指向一个2维数组的指针,与之相对应的是int p[][4];int **p;//是指向一个指针的指针 ,与之相对应的是int *p[n],它们都是指向字符串的指针数组,而且二位动态数组开辟后只能将值赋予它(**p),因为只有它的数据结构才能满足;两个都是指向地址的 。很多朋友为二维动态...
C语言无符号整型数有最大限制,所以一个维的大小,不能超过整型数最大限制。malloc 动态分配,可以测定,分配是否成功。 本回答被网友采纳 金色潜鸟 | 发布于2012-12-30 举报| 评论 4 0 静态数组最多能开到2K字节,相当于1024个整数。malloc开辟的动态数组容量则与机器的内存总容量和当前占用的内存容量有关系。