永发信息网

用c语言如何定义一个较大的二维数组,例如1000行1000列

答案:4  悬赏:50  手机版
解决时间 2021-11-23 23:10
用c语言如何定义一个较大的二维数组,例如1000行1000列
最佳答案
简单来说,直接定义就可以了。比如int a[1000][1000];

但是如果你的数组非常非常大,那就需要考虑栈内存问题了。因为直接定义的数组是存放在当前线程栈空间的。一般线程栈空间都会有默认值(可能有1MB到10MB不等),具体取决于操作系统的默认分配策略。也可以通过创建线程的时候自己设置。
更合适的方式是用动态分配内存,C语言中对应的是malloc函数。动态空间是在堆(Heap)上分配的,可以使用的内存一般都会很大。动态分配二维数组可以参考:
http://blog.csdn.net/dualeak/article/details/4677132
全部回答
如果是在单片机的话, 你根本就不可能建立这种二维数组。
即使在PC端也不建议建立这么大的数组。追问pc端的,真的没办法用c实现定义一个行列1000的二维数组吗追答其实你不必这么纠结于这个。 也很多种办法可以替代 数组。
效率高。逻辑清晰
用int定义所占空间较大,如用unsigned char定义空间会节约很多,不过还是不能满足1000行1000列的要求,单片机内的数据存储单元是有限的,编程不仅仅是软件的事,也要了解所有单片机的内部结构与硬件资源,软硬结合才能更快进步,希望能对你学习c有所帮助。
void main()
{
int a[1001][1001];
}
这样定义没有问题
Array size too large (数组太大)
分析:定义的数组太大,超过了可用内存空间。
可能是你的可用内存空间太小追问你说的原因我也知道,那么要怎样定义一个较大的二维数组追答内存不够使,就定义不了,不是C语言的问题!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
比92少90,1的数是多少
贾宝玉初试云雨情是什么意思?贾宝玉和袭人做
办一个网站一定需要注册一个域名,这个域名必
四川人叫瓜娃子是什么意思啊
唐山市滦县杨柳庄镇大下五岭中学地址在什么地
玛咖切进去肉有些黑,正常吗
汉语的语什么意思
1982年为人民服务酒多少钱?
wow 求激活状态下 怒击 的法术ID;说什么法术
中山樱花卫厨地址有知道的么?有点事想过去
蚌埠二院生孩子多少钱
高1米96宽1米42等于多少平方米
把能左右移动的轴承固定在光轴上 要用什么东
职校女生纯真的人多吗
家常小灶怎么样
推荐资讯
四个火,四个水,四个日,四个井都是什么字
从台儿庄出发到微山湖和到临沂顺路吗?
隆多在鹈鹕和小牛时期为什么会差别这么大
有哪些好用的赚钱软件?
西门子s7-300plc 怎么单独给程序块加密
12X+5Y=99 X+Y 〉10 问x=?,,y=?
仪表盘中两红一黄的标志是什么意思,点火之前
AE中如何让图块和位置路径一起移动?
女主叫帝思恩,男主叫墨琰的小说 在若初文学
2016款哈弗升级版1.5t两驱都市型是国几
妮欧甲艺地址在哪,我要去那里办事,
为什么透明圈的直径大于菌落的直径
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?