a[1000][1000]程序崩溃
2024-09-29 09:05:57
1000 * 1000是大于65536的。如果不是需求需要,没必要开辟如此之多的空间。因为这些空间实在栈上申请的(如果是局部变量),栈的空间是有限的并且是宝贵的,所以呢,开辟太多的空间而不适用很可能会出现内存泄露。
数组下标一般是int或unsigned int类型,在32位机器上足够定义出20亿以上的下标范围了。通常大数组出错都不是它造成的,而是因为数组耗尽了栈空间的缘故。
定义大型数组应该尽量放在堆里,别放在栈上。栈空间很有限,不该浪费它。
放堆里有很多办法:用new创建、定义为static数组、定义为全局数组等等。
具体:
static int a[1000][1000];
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。
int (*p)[MAX] = new int[MAX][MAX];
最新文章
- java数学函数库 API(转)
- Codeforces Round #192 (Div. 2)
- selenium依次点击页面的删除按钮
- USB鼠标按键驱动
- Git学习小结(第三次作业)
- WCF 客户端调用几种方式
- align=absMiddle属性设置
- Java凝视Override、Deprecated、SuppressWarnings具体解释
- 开源GUI-Microwindows之程序入口分析
- JS跨域访问问题
- Swift应用案例 1.无限轮播
- Tkinter开发第一个桌面程序HelloWorld
- linux设置静态IP和DNS以及改网卡名
- object类的equals方法简介 &; String类重写equals方法
- NFS挂载异常 mount.nfs: Input/output error
- 菜鸟脱壳之脱壳的基础知识(六)——手动查找IAT和修复Dump的程序
- c# 获取机器硬件信息 (硬盘,cpu,内存等)
- SQL结构化查询语句
- Android7.0手机程序保活(附源码下载)
- windows下vbs脚本隐藏控制台