社区
数据结构与算法
帖子详情
为什么int arrayq[2288][2288]失败
whucv
2012-09-22 01:15:33
int array1[2288][2288];//int 4字节,总共16M多,为什么会分配失败,打开图像30多M都没问题呢
...全文
166
5
打赏
收藏
为什么int arrayq[2288][2288]失败
int array1[2288][2288];//int 4字节,总共16M多,为什么会分配失败,打开图像30多M都没问题呢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LogicTeamLeader
2012-09-30
打赏
举报
回复
很好,受教了。
[Quote=引用 4 楼 的回复:]
引用楼主 的回复:
int array1[2288][2288];//int 4字节,总共16M多,为什么会分配失败,打开图像30多M都没问题呢
注意程序的栈区间和堆空间。
函数的参数,局部变量都是栈空间,栈空间都是不大的,编译器可以设置,大约就几个M级别的。
用户动态申请的内存时在堆区间上的,C中用malloc,c++中用new来申请。
你这样写int array1[2288]……
[/Quote]
huangxy10
2012-09-26
打赏
举报
回复
[Quote=引用楼主 的回复:]
int array1[2288][2288];//int 4字节,总共16M多,为什么会分配失败,打开图像30多M都没问题呢
[/Quote]
注意程序的栈区间和堆空间。
函数的参数,局部变量都是栈空间,栈空间都是不大的,编译器可以设置,大约就几个M级别的。
用户动态申请的内存时在堆区间上的,C中用malloc,c++中用new来申请。
你这样写int array1[2288][2288];一定是局部变量,超过限制了。
在堆上能够申请到的空间和操作系统有关。
32位的操作系统用户最大可申请2G,及时你插了4G的内存条也没用。
64位的操作系统不受限制,有虚拟内存的帮助几乎是想申请多少申请多少。
不过申请多了,速度会很慢,因为内存和硬盘调入调出还是很费时间的。
说多了,啰嗦了。
Qyee16
2012-09-22
打赏
举报
回复
vs的默认栈空间是 4M吧。
建议使用new...........
RiqueZhang
2012-09-22
打赏
举报
回复
LZ,你申请的是栈内存,正如2楼所述,VS的默认栈空间是4M,所以你申请那么多必然失败,请用new
DeDeWo
2012-09-22
打赏
举报
回复
在主函数外面可以,但在函数里面是不可以的,栈区默认只有这么多
取整数的几种方法
取整数的几种方法
MoreWindows白话经典算法之七大排序(高清版)
这是本人在研一上课时所整理的文档,包括冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法,这些文章不仅使我在考试中取了不错的成绩,也为后来顺利面过迅雷,腾讯,微软打下了良好的基础,现在整理成电子书形式,希望能对大家有所帮助。
C/C++ 指针的13份资料
C/C++ 指针的13份资料 内容丰富,让编程人员不再害怕指针
为什么
int
类型的最大值是2^31-1 ?
2019独角兽企业重金招聘Python工程师标准>>> ...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章