大数组问题(紧急!!!)
我要用30000*3*3的数组.但老师堆栈溢出,没有办法.我该怎么办???谢谢!!!!! 问题点数:10、回复次数:6Top
1 楼BaoYu(深山老人参)回复于 2000-05-07 20:55:00 得分 2
你可以用别的办法代替这个数组。请你说详细些?Top
2 楼Sniper(sniper)回复于 2000-05-08 08:05:00 得分 2
一般来说,Win32系统中内存的使用基本上没有什么限制。
你的数组元素是什么样的?
你试试用new进行分配看看。Top
3 楼xubin_sh(NBX)回复于 2000-05-08 09:06:00 得分 3
不知道你是不是用new或malloc分配的,如果是的话,改用HeapCreate/HeapAlloc或VirtualAlloc/VirtualLock来进行分配内存。(只是建议,没试过)Top
4 楼abentu()回复于 2000-05-08 09:33:00 得分 3
vc linker的缺省栈大小是1M,如果你在函数内部用int ar[30000][3][3]的方式定义数组,使用的是栈内存,用new等是在进程空间分配。你要么改用分配内存的方式,要么在连接时用/STACK的选项增加保留的栈空间大小Top
5 楼cxwhust()回复于 2000-05-08 18:29:00 得分 0
已经解决啦!谢谢!!我的师兄给我的回答:(经验证)
1.定义为全局变量;
2.定义为类成员变量;
3.参看MSDN的stack size setting 主题知_----project/setting/link/category/output:stack allocations/reserve设置堆栈大小为10000000(10M)就完全够了.
另外,new操作是不行的.
Top
6 楼abentu()回复于 2000-05-11 08:21:00 得分 0
new 是可行的,只是你要改变缺省堆的大小或为自己的线程创建堆,因为它的缺省大小也是1MTop




