作者cismjmgoshr (--???--)
看板C_and_CPP
標題[問題] 建一個1000x1000的乘法/加法表時程式當掉
時間Thu Mar 11 15:50:37 2010
想要建一個乘法/加法表 大小是1000x1000的short int陣列
表內記錄
從 0x0 到 999x999 的乘積(小於1000的部份)和進位數字(大於1000的部份)
從 0+0 到 999+999 的和(小於1000的部份)和進位數字(大於1000的部份)
如果宣告四個1000x1000的short int陣列,則程式可以正常執行
如果宣告兩個1000x1000x2的陣列、或宣告一個1000x1000x4的陣列,則程式會當掉
也試過用struct把四個short int包在一起,宣告一個1000x1000的sturct陣列,但還是當
掉
我覺得這四種宣告方式所佔用的記憶體空間應該一樣吧?
實際上在跑的時候只有第一種可以正常執行,其他卻當掉了
程式碼:
http://nopaste.csie.org/c618d
四個1000x1000的short int陣列
http://nopaste.csie.org/0ef76
兩個1000x1000x2的short int陣列
http://nopaste.csie.org/a8d5c
一個1000x1000x4的short int陣列
http://nopaste.csie.org/92023
用struct包起來 1000x1000的陣列
執行平台:
dev-C++
Windows XP
1GB RAM
Intel P4 CPU(3.0GHz)
--
∫work dt = success
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.86.61
推 VictorTom:如果改用malloc的呢?? 另外, 16 bits的short不夠放 03/11 15:54
→ VictorTom:999*999的結果喔@_@" 03/11 15:55
→ VictorTom:啊對不起, 你不會直接存999*999....Orz 03/11 15:56
推 littleshan:這問題每隔幾天就有人問一次,建議板主加到十誡裡面吧 03/11 16:38
推 littleshan:噢 我又看錯問題所在了 03/11 16:43
→ littleshan:你的問題出在多一個分號 導致 access violation 03/11 16:43
→ littleshan:就降 03/11 16:44
→ cismjmgoshr:....原來只是打錯字 Orz 03/11 16:46
推 VictorTom:l大的眼睛好利....orz 03/11 17:17
推 andyjy12:十戒應該寫一條"請不要用arry" 03/11 17:44
→ nowar100:我有想過多加一些東西進去,可是一直沒想到完整最簡易的 03/11 17:46
→ nowar100:寫法,而且我在考慮這些真的是新手會遇到的問題嗎 03/11 17:46
→ nowar100:會不會只有特定開發者會遇到 這段時間如果還是很常出現這 03/11 17:48
→ nowar100:種大array的問題話,我應該就會加到精華區或是十誡了 0.0 03/11 17:48
推 yoco315:啥?!有多分號喔?我還是沒看到 XD 03/12 01:08