[問題] 實務上array可儲存的元素數(存float為例)
開發平台(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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.49.129
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1452006157.A.FE1.html
※ 編輯: alen332l (114.42.49.129), 01/05/2016 23:11:25
推
01/05 23:17, , 1F
01/05 23:17, 1F
→
01/05 23:19, , 2F
01/05 23:19, 2F
→
01/05 23:23, , 3F
01/05 23:23, 3F
→
01/05 23:24, , 4F
01/05 23:24, 4F
→
01/05 23:37, , 5F
01/05 23:37, 5F
→
01/05 23:38, , 6F
01/05 23:38, 6F
推
01/05 23:38, , 7F
01/05 23:38, 7F
推
01/05 23:53, , 8F
01/05 23:53, 8F
推
01/06 00:27, , 9F
01/06 00:27, 9F
推
01/06 00:37, , 10F
01/06 00:37, 10F
推
01/06 12:32, , 11F
01/06 12:32, 11F
感謝各位大大的建議
其中chchwy大的建議非常有用 從local改成global就可以run了#
^^^^^^^^
所以會因為local_array及global_array的不同而有不同的記憶體安排了!?
所以小弟整理原因如下:
「
因為main()函數宣告的array會從stack擠出
所以很快就會overflow
而宣告於global仍是在stack,但因為預留空間而比較不會有overflow的問題.
(因此我array改成global 後就ok了)
最後, 我的例子是靜態宣告,所以不會用到heap.
」
不知道如此理解是否正確,再次感謝m(.__.)m
※ 編輯: alen332l (114.42.49.129), 01/06/2016 21:41:45
推
01/06 22:34, , 12F
01/06 22:34, 12F
→
01/06 22:35, , 13F
01/06 22:35, 13F
→
05/10 17:42, , 14F
05/10 17:42, 14F