作者jerrykk (路边小人物)
看板C_and_CPP
标题[问题] 阵列太大 程式无法执行?
时间Wed Feb 25 15:19:13 2009
小弟写了一个C++程式
起初用三维阵列做都OK
但是今天因为功能上
不得以ㄧ定非要用到四维阵列
我把程式修改成四维的版本下去
但是却显示:
total image size -314621952 exceeds max (268435456); image may not run
我的宣告长这样:
struct Prev_info{
int prev_node;
int cur_dist;
int prev2cur_line;
int prev_count;
float prev_time;
int prev_prev_node;
};
Prev_info A[300][10][300][100];
请问是所占记体太大而无法执行吗?
如果真的一定非要用到四维阵列下去做
有什麽改善方法让程式执行吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.126.113.78
1F:推 zlw:就算Prev_info用一个4 byte算都要343MB了... 02/25 15:27
2F:→ joefaq:你乘乘看就知道 A吃到GB以上了 stack好像只给20MB 02/25 15:27
3F:推 ledia:只有 216MB 吧 ._. 另外 stack 空间预设是 1MB 02/25 15:42
4F:→ ledia:如果要用这麽多(跟维度无关) 请自己动态配置 02/25 15:43
5F:→ layarice:大概两G多 02/25 15:45
6F:→ jerrykk:恩 谢谢建议 我改动态配置看看 02/25 15:48
7F:推 ledia:少看一个 0 .... Orz 02/25 19:16