作者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