c语言中一个整数(int)二维数组可以设置最多多少行跟多少列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中一个整数(int)二维数组可以设置最多多少行跟多少列相关的知识,希望对你有一定的参考价值。
int[ ? ][ ? ]
中括号里面可以填多大的值,这个有限定的吗?怎么我软件最多只能输入100跟500,有没有什么方法让它变大点???谢谢了!!
想开大的数组,可以用动态分配。
定态数组,作为全局量可以开得大。例如:
#include <stdio.h>
int a[1001][1001]; // 全局量
main()
a[1000][1000]=1000;
printf("%d",a[1000][1000]);
return 0;
若放到 main() 里,就是局部量,就不能用这么多单元了。 参考技术A 受编译模式和计算机内存(包括硬盘上的虚拟内存)限制。
我们来算一下int x[100][500];占用了多少内存,假设int型变量是32位的,即4字节:
4*100*500=200000字节=196k字节,这应当是比较小的,有可能是你的编译设置选项导致的限定。
普通在PC机上,你用huge模式的编译选项可以开出G级的数组,可用来放置很大的图象之类的数据。
上面所说的前提是这个变量如果开设成全局的,你如果在某函数中开设,那么它的尺寸就要收到编译选项中堆栈尺寸的限制。 参考技术B
1、理论上没有限制,实际上,计算机有物理内存大小限制,整型数也有最大值的限制。想开大的数组,可以用动态分配。定态数组,作为全局量可以开得大。
2、例如:
int a[1001][1001]; // 全局量
main()
a[1000][1000]=1000;
printf("%d",a[1000][1000]);
return 0;
参考技术C 你可以这样子计算,根据操作系统中一个int型变量所占用的字节数,然后在看看你这个变量时放在堆里面还是栈里面 在根据堆栈的大小除以int型变量的字节数,就得到括号里面两个数相乘的集。两数成绩不要超过这个值即可。 参考技术D 我试出来是:
int a[22335][22335];
这是两个相等的最大,我电脑上全局变量是这样
以上是关于c语言中一个整数(int)二维数组可以设置最多多少行跟多少列的主要内容,如果未能解决你的问题,请参考以下文章