永发信息网

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

答案:4  悬赏:50  手机版
解决时间 2021-11-23 23:10
  • 提问者网友:轮囘Li巡影
  • 2021-11-23 14:53
用c语言如何定义一个较大的二维数组,例如1000行1000列
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-11-23 16:12
简单来说,直接定义就可以了。比如int a[1000][1000];

但是如果你的数组非常非常大,那就需要考虑栈内存问题了。因为直接定义的数组是存放在当前线程栈空间的。一般线程栈空间都会有默认值(可能有1MB到10MB不等),具体取决于操作系统的默认分配策略。也可以通过创建线程的时候自己设置。
更合适的方式是用动态分配内存,C语言中对应的是malloc函数。动态空间是在堆(Heap)上分配的,可以使用的内存一般都会很大。动态分配二维数组可以参考:
http://blog.csdn.net/dualeak/article/details/4677132
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-11-23 19:34
如果是在单片机的话, 你根本就不可能建立这种二维数组。
即使在PC端也不建议建立这么大的数组。追问pc端的,真的没办法用c实现定义一个行列1000的二维数组吗追答其实你不必这么纠结于这个。 也很多种办法可以替代 数组。
效率高。逻辑清晰
  • 2楼网友:詩光轨車
  • 2021-11-23 17:56
用int定义所占空间较大,如用unsigned char定义空间会节约很多,不过还是不能满足1000行1000列的要求,单片机内的数据存储单元是有限的,编程不仅仅是软件的事,也要了解所有单片机的内部结构与硬件资源,软硬结合才能更快进步,希望能对你学习c有所帮助。
  • 3楼网友:患得患失的劫
  • 2021-11-23 17:50
void main()
{
int a[1001][1001];
}
这样定义没有问题
Array size too large (数组太大)
分析:定义的数组太大,超过了可用内存空间。
可能是你的可用内存空间太小追问你说的原因我也知道,那么要怎样定义一个较大的二维数组追答内存不够使,就定义不了,不是C语言的问题!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯