[爆卦]陣列 記憶體大小是什麼?優點缺點精華區懶人包

為什麼這篇陣列 記憶體大小鄉民發文收入到精華區:因為在陣列 記憶體大小這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者DreamLoser (金屬製品)看板C_and_CPP標題[問題] 如何擴大array的總記憶...


不好意思 小弟對硬體不太熟 可能會問出蠢問題...
就是array大小要怎麼擴增呢?
比如說我的array一開始宣告他的最大可放的大小10*10*4*4
complex<double>D[10][10][4][4]
大概這樣就到極限了
但是我的程式可能要寫個D[10][10][4][4][3][3] 我想應該不行...
或是D[20][20][4][4] 也會暴 也就是這個總記憶體大小不能超過兩三萬個格子....
當然如果把double變成是比較小的比如說int當然是可以擴展啦 但因為我做的是科學運算
所以double這個是要維持精準度..沒辦法改

這個array的記憶體大小是c++內建的限制嗎?(我猜得)可以解除這個限制吧?
有什麼簡單的方法去解除這個限制呢?
我用的是visual 2008 c++
fortran好像沒有記憶體大小的限制喔?那c語言有嗎?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.81.223
adrianshum:是 stack 的限制. 改由 heap alloc memory, 或用vector 06/15 12:15
fjm31714:c malloc() calloc() c++ new 06/15 15:14
zlw:static complex<double>D[10][10][40][2000]; 大概吃個一百多M 06/15 17:02
zlw:但必須要注意,static的lifetime是整個程式結束為止才釋放 06/15 17:02
DreamLoser:所以加了static 就可以在記憶體內幾乎無限放大囉? 06/15 18:59
zlw:我OS不是讀得很熟,不過有OS提供的虛擬記憶體加持,如果你設超 06/15 19:01
zlw:過實體記憶體,應該會把部份放到硬碟去,所以應該可以設到比你 06/15 19:02
zlw:的實體記憶體,假設512MB,還要多,比如600。極限多少我不知道 06/15 19:03
DreamLoser:謝謝你^^ 感謝!! 06/15 19:27
wupojung:我怎麼會想用 串列List?? 難到我病了麻? 06/22 01:54

你可能也想看看

搜尋相關網站