关于数组大小的问题

novice2008 2009-03-04 09:25:59
我定义个全局变量int a[1000000]没问题。
但是像
int main()
{
int a[1000001];
.....
}
就会SIGSEGV,这是为什么?
...全文
63 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xudeng22 2009-03-04
  • 打赏
  • 举报
回复
用动态分配吧!
novice2008 2009-03-04
  • 打赏
  • 举报
回复
额,我回复完才看见。
BeckhamXiao 2009-03-04
  • 打赏
  • 举报
回复
栈溢出,如果你要定义那么大的数组,用全局变量,或者动态分配在堆上
arong1234 2009-03-04
  • 打赏
  • 举报
回复
1楼不是告诉你了?!
不要去尝试“最大”值,你应该尽量使用“最小值”
探询最大值是没有意义得,这不仅和你缺省堆栈大小有关,也和你代码有关

[Quote=引用 3 楼 novice2008 的回复:]
那全局变量呢?它没有限制?是在哪申请的?

局部变量最大能申请多少?
[/Quote]
novice2008 2009-03-04
  • 打赏
  • 举报
回复
那全局变量呢?它没有限制?是在哪申请的?

局部变量最大能申请多少?
arong1234 2009-03-04
  • 打赏
  • 举报
回复
全局变量占用系统分配给进程得可用空间,因此可能很大
局部变量定义在栈上,一般栈缺省只有1M左右,你这么大,当然栈就溢出了
  • 打赏
  • 举报
回复
局部变量在栈上申请空间,但栈有大小限制,你的超过这个限制了,所以给你一个错误

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧