[计程] [C] 阵列宣告太大就当掉的原因。

楼主: andy88566y (猫龙)   2013-10-09 22:13:43
同学好,
有同学反应当阵列宣太大程式就会当掉。例如
int arr1[20][20]; 这样做没问题,测资也通过。
int arr2[512][512]; 这样做程式在自己电脑竟然直接当掉,但传
到judgegirl是全对5分。
这是由于内存大小的关系。sizeof(arr2)是4x512x512,大约1MB
有些比较差的作业系统(比如Windows)限制只能用不超过1MB内存
所以arr2会导致值程式当掉。如果你使用Linux,Mac等,arr2就没
问题。
因此如果同学在Windows下写程式,遇到这问题解法有:
1. 舍弃Windows,使用更适合写程式的作业系统如Linux
2. 在编译时加上参数 -Wl,
作者: skgg (skg)   0000-00-00 00:00:00
最简单的方法是宣告在main上面就好~
作者: winston1907 (winston)   0000-00-00 00:00:00
有些比较差的作业系统(比如Windows) XD
作者: kchiazo (不要该该叫)   0000-00-00 00:00:00
呵呵我计概的时候就偷听到强者说了
作者: Hyww13 (hyww)   0000-00-00 00:00:00
原来有这种事(笔记
作者: mudream (藍雪)   0000-00-00 00:00:00
直接用map(逃
作者: cebrusfs (可鲁贝洛斯)   0000-00-00 00:00:00
linux 默认 8MB 只大8倍,还是很容易爆的...

Links booklink

Contact Us: admin [ a t ] ucptt.com