同學好,
有同學反應當陣列宣太大程式就會當掉。例如
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,