[問題] 實務上array可儲存的元素數(存float為例)

作者: alen332l (alen3321)   2016-01-05 23:02:33
開發平台(Platform): Visual Studio
問題(Question):
請教實務上一台普通PC
C array,儲存float的話
大概可以有幾個elements?
小弟我只使用了4個array
float ADiag[numX];
float ALeft[numX];
float ARight[numX];
float b[numX];
(其中numX約為50000以前都ok (無論numX代入1,2,3....1000...50000都不會問題),
約50000後程式會當掉...
是否為memory不足?
(memory有如此小嗎?只能存約50000*4 = 20萬個float??!!)
先感謝各位大大的回答m(.____.)m
作者: Clangpp (Clang++)   2016-01-05 23:17:00
沒那麼小吧?? 一個float 64位元的系統算 8byte好了20萬 * 8btye 差不多 150幾MB
作者: overhead (overhead)   2016-01-05 23:23:00
不能看總memory OS會為你的process開空間(stack heap那些)我查了一下 VC++的預設最大stack是1MB 用win32算4*50000*4byte=接近800KB 好像還算合理?
作者: LPH66 (-6.2598534e+18f)   2016-01-05 23:38:00
這問題跟東西在哪裡很有關係, 不同地方有不同的限制
作者: Clangpp (Clang++)   2016-01-05 23:53:00
慘了 我算錯了是 1.5MB...
作者: laladeer (laladeer)   2016-01-06 00:27:00
改用動態宣告吧
作者: stupid0319 (徵女友)   2016-01-06 00:37:00
跟虛擬記憶體還有分頁大小有關,跟實體記憶體多大無關
作者: chchwy (mat)   2016-01-06 12:32:00
先說你的array是區域變數還是全域變數
作者: overhead (overhead)   2016-01-06 22:34:00
錯了吧 宣告於global的未初始化變數是放在BSS可google "data segment"

Links booklink

Contact Us: admin [ a t ] ucptt.com