[問題] 陣列太大 程式無法執行?

看板C_and_CPP (C/C++)作者 (路邊小人物)時間16年前 (2009/02/25 15:19), 編輯推噓3(304)
留言7則, 5人參與, 最新討論串1/1
小弟寫了一個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

02/25 15:27, , 1F
就算Prev_info用一個4 byte算都要343MB了...
02/25 15:27, 1F

02/25 15:27, , 2F
你乘乘看就知道 A吃到GB以上了 stack好像只給20MB
02/25 15:27, 2F

02/25 15:42, , 3F
只有 216MB 吧 ._. 另外 stack 空間預設是 1MB
02/25 15:42, 3F

02/25 15:43, , 4F
如果要用這麼多(跟維度無關) 請自己動態配置
02/25 15:43, 4F

02/25 15:45, , 5F
大概兩G多
02/25 15:45, 5F

02/25 15:48, , 6F
恩 謝謝建議 我改動態配置看看
02/25 15:48, 6F

02/25 19:16, , 7F
少看一個 0 .... Orz
02/25 19:16, 7F
文章代碼(AID): #19fF3oHp (C_and_CPP)
文章代碼(AID): #19fF3oHp (C_and_CPP)