1000 * 1000是大于65536的。如果不是需求需要,没必要开辟如此之多的空间。因为这些空间实在栈上申请的(如果是局部变量),栈的空间是有限的并且是宝贵的,所以呢,开辟太多的空间而不适用很可能会出现内存泄露。

  数组下标一般是int或unsigned int类型,在32位机器上足够定义出20亿以上的下标范围了。通常大数组出错都不是它造成的,而是因为数组耗尽了栈空间的缘故。

定义大型数组应该尽量放在堆里,别放在栈上。栈空间很有限,不该浪费它。

放堆里有很多办法:用new创建、定义为static数组、定义为全局数组等等。

  

具体:

static int a[1000][1000];
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。

int  (*p)[MAX] = new int[MAX][MAX];

最新文章

  1. java数学函数库 API(转)
  2. Codeforces Round #192 (Div. 2)
  3. selenium依次点击页面的删除按钮
  4. USB鼠标按键驱动
  5. Git学习小结(第三次作业)
  6. WCF 客户端调用几种方式
  7. align=absMiddle属性设置
  8. Java凝视Override、Deprecated、SuppressWarnings具体解释
  9. 开源GUI-Microwindows之程序入口分析
  10. JS跨域访问问题
  11. Swift应用案例 1.无限轮播
  12. Tkinter开发第一个桌面程序HelloWorld
  13. linux设置静态IP和DNS以及改网卡名
  14. object类的equals方法简介 & String类重写equals方法
  15. NFS挂载异常 mount.nfs: Input/output error
  16. 菜鸟脱壳之脱壳的基础知识(六)——手动查找IAT和修复Dump的程序
  17. c# 获取机器硬件信息 (硬盘,cpu,内存等)
  18. SQL结构化查询语句
  19. Android7.0手机程序保活(附源码下载)
  20. windows下vbs脚本隐藏控制台

热门文章

  1. Android 手势识别类 ( 三 ) GestureDetector 源码浅析
  2. lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录
  3. Oracle11G 卸载步骤
  4. Opencv相关细节
  5. REST风格的原则
  6. BigDecimal 使用方法详解
  7. JS闭包的理解
  8. GCD工作单元
  9. 通过词法分析实现的指出C程序中包含的头文件
  10. 简述WebService的使用(二)