当前位置: 代码迷 >> C语言 >> [求助]数组大小问题
  详细解决方案

[求助]数组大小问题

热度:122   发布时间:2006-10-22 10:52:12.0
昨天定义一个2000000的数组.有的编译器是有限制的,正如楼上说的,大数组最好定义为全局变量.
----------------解决方案--------------------------------------------------------

数组太大,栈溢出了,有几个解决方法:

1。建议用动态分配,int *a = (int *)malloc(70000 * sizeof(int));

2.可以修改你的编译器中规定的栈大小,VC下默认好象是1M,TC似乎是64K。

3。把数组存在静态区域,但最好不要这样做。


----------------解决方案--------------------------------------------------------
谢谢版主lj_860603:编译器中规定的栈大小,VC下默认好象是1M,TC似乎是64K。
又学到东西了!

----------------解决方案--------------------------------------------------------
不客气

还是用动态吧,其他两种虽然可行,但可能会出现一些相应的问题,不推荐。
----------------解决方案--------------------------------------------------------
[QUOTE]3。把数组存在静态区域,但最好不要这样做。[/QUOTE]

健健.来说说这个..
----------------解决方案--------------------------------------------------------

健健.来说说这个..

呵呵,SUN,这个问题我以前跟soft_wind说过,我找找看那个帖子。


----------------解决方案--------------------------------------------------------
找到了, 哇哈哈

http://bbs.bc-cn.net/viewthread.php?tid=82598&extra=&page=100#

最主要的其实还是空间浪费和程序的维护性问题。
----------------解决方案--------------------------------------------------------

[QUOTE]这里要明白其实静态变量也是在堆中分配的。[/QUOTE]

这个你是怎么理解的呢?

PS:你说的方便管理我同意


----------------解决方案--------------------------------------------------------
咦``偶那时候怎么说错了``汗一个

是在静态区域吧``嘿嘿``还好SUN帮偶指正出来``
----------------解决方案--------------------------------------------------------
汗..我哪知道它是错的.就是感觉蛮奇怪的.还打算向你讨教一下呢.
----------------解决方案--------------------------------------------------------
  相关解决方案