[问题] 实务上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