skyli
C++之梦
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 62 文章 - 96 trackbacks - 0
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(7)
给我留言
查看公开留言
查看私人留言
随笔分类
(66)
acm之路(22)
C++之路(32)
php之路(10)
其它知识(2)
随笔档案
(62)
2007年8月 (2)
2007年7月 (2)
2007年5月 (1)
2007年4月 (3)
2007年3月 (1)
2007年2月 (1)
2007年1月 (2)
2006年12月 (1)
2006年11月 (2)
2006年10月 (9)
2006年9月 (2)
2006年8月 (5)
2006年6月 (4)
2006年5月 (10)
2006年4月 (9)
2006年3月 (6)
2006年1月 (2)
文章分类
(31)
生活点滴(24)
文章转载(3)
笑话转载(4)
文章档案
(32)
2011年1月 (1)
2009年6月 (1)
2006年9月 (1)
2006年8月 (2)
2006年6月 (5)
2006年5月 (12)
2006年4月 (5)
2006年3月 (2)
2006年1月 (3)
友情链接
&豪's Blog
Asp's Blog
Chgsh's Blog
My CSDNBlog
Sempr's Blog
XLQ's Blog
校内网
最新随笔
1. pow函数的性能测试
2. 一道算法题引发的动态内存管理的思考
3. 再谈子集树
4. 位运算求子集树
5. 筛法求素数
积分与排名
积分 - 233521
排名 - 108
最新评论
1. re: 优先队列用法
评论内容较长,点击标题查看
--tanti
2. re: 优先队列用法
给力!!
--***
3. re: pow函数的性能测试
Pow 函数要处理各种非整数次幂情况,比如0.5就等于开根号了,0.2就等于开5次方了。当然比直接乘慢的多。
--YYX
4. re: istringstream用法[未登录]
@gong
cin是标准输入,在std中已经声明了。
--mm
5. re: istringstream用法[未登录]
您好,为什么这里的getline(cin, line)中的cin没有定义就直接使用了呢?
--gong
阅读排行榜
1. itoa函数(67398)
2. 优先队列用法(57140)
3. istringstream用法(19259)
4. 数组最大长度问题(11851)
5. 测试程序运行时间(10204)
评论排行榜
1. itoa函数(14)
2. 测试程序运行时间(9)
3. 关于语句作用域(7)
4. pow函数的性能测试(6)
5. 数组最大长度问题(5)
数组最大长度问题
最近遇到了一个问题:
在函数内定义了一个一百万的数组。
编译、连接没问题,但执行时就会提示堆栈溢出。
但定义全局变量却没有问题。
谁能给我解释一下为什么?
posted on 2006-05-06 23:32
beyonlin
阅读(11851)
评论(5)
编辑
收藏
引用
所属分类:
C++之路
FeedBack:
#
re: 数组最大长度问题 2006-05-07 08:39
漂舟
在函数内定义,数组是产生在栈中,有大小限制,具体大小,应该和编译器或设置有关,默认的好像是1MB,
定义成全局,是在堆中产生,所以能通过。
回复
更多评论
#
re: 数组最大长度问题 2006-10-25 13:22
Asp
全局变量也有限制吧,在MS VC++6.0里面定义int array[2147483647];是允许的,但是长度定义成2147483648的话,编译的时候就会报错:
error C2118: negative subscript or subscript is too large
Dev C++和其他的编译器里面,我就不知道了,没有试过……
回复
更多评论
#
re: 数组最大长度问题 2006-10-26 00:12
beyonlin
2147483648对于int已经溢出,当然会报错。
int array[2147483647]在MS VC++6.0下虽然不报错,但会发生运行错误。
并且int array[2147483647]在VS.net 2005下是编译不过的。
我认为全局数组最大的内存可能是2147483647 bytes。
即int array[2147483647/4]或double array[2147483647/8]。
回复
更多评论
#
re: 数组最大长度问题 2006-10-31 19:19
Asp
这个就不知道了,没有仔细研究过……
不过可能和sizeof()有关,a[i]=a+sizeof(type)*i,而i取2147483647的话就越界了吧,因为指针也是4字节,所以可能sizeof()返回的长度和int一样……
如果是这样的话,那就真的最大只能到2147483647/sizeof(type)了……
回复
更多评论
#
re: 数组最大长度问题
2008-12-19 21:38
helloworld
超过1M 具体1024*1000差不多。应该在堆中或进程数据区分配。
按照这个原理,全局变量在进程数据区,所以不会出错。
局部变量的话使用new在堆中分配。
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
一道算法题引发的动态内存管理的思考
再谈子集树
位运算求子集树
字符串hash函数
优先队列用法
计数排序
《C++ Primer》之读书笔记七
插入排序泛型算法
《C++ Primer》之读书笔记六
《C++ Primer》之读书笔记五
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理