#17219: C的


freedom501999@gmail.com (帥氣魔方生)

學校 : 不指定學校
編號 : 88611
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
c929. 蝸牛老師的點名單-續 | From: [27.52.129.54] | 發表日期 : 2019-03-29 14:28

題目雖然說字元數在 1000 個以內,但是我卻在最後兩個測資點出現 "存取超過陣列範圍" 的錯誤

( C 是用字元陣列儲存字串)

我把陣列大小擴充到 3000 個就 AC 了,所以若是用 C 練習,請把陣列開大一點

 
#17220: Re:C的


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
c929. 蝸牛老師的點名單-續 | From: [49.158.83.43] | 發表日期 : 2019-03-29 17:05

題目雖然說字元數在 1000 個以內,但是我卻在最後兩個測資點出現 "存取超過陣列範圍" 的錯誤

( C 是用字元陣列儲存字串)

我把陣列大小擴充到 3000 個就 AC 了,所以若是用 C 練習,請把陣列開大一點

會存取超過陣列範圍,原因可能是因為測資裡真的有剛好 1000 個字元的字串。

而如果字元陣列的大小只開 1000 整的話,實際上是會發生錯誤的。

因為 C 的字元陣列的結尾會放一個特殊字元「'\0'」,用以表示字串的結尾。

可是因為 ’\0’ 本身也是個字元,所以也要佔陣列裡的一格位置。因此剛好會使大小為 1000 整的字元陣列,存放不下 1000 的想存放的字串內容。

 

因此,可以試試看把陣列大小設成 1001 。如果還是錯誤,表示有「可能」是題目的紕漏。

以上。

 
#17221: Re:C的


freedom501999@gmail.com (帥氣魔方生)

學校 : 不指定學校
編號 : 88611
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
c929. 蝸牛老師的點名單-續 | From: [27.52.129.54] | 發表日期 : 2019-03-29 17:12

題目雖然說字元數在 1000 個以內,但是我卻在最後兩個測資點出現 "存取超過陣列範圍" 的錯誤

( C 是用字元陣列儲存字串)

我把陣列大小擴充到 3000 個就 AC 了,所以若是用 C 練習,請把陣列開大一點

會存取超過陣列範圍,原因可能是因為測資裡真的有剛好 1000 個字元的字串。

而如果字元陣列的大小只開 1000 整的話,實際上是會發生錯誤的。

因為 C 的字元陣列的結尾會放一個特殊字元「'\0'」,用以表示字串的結尾。

可是因為 ’\0’ 本身也是個字元,所以也要佔陣列裡的一格位置。因此剛好會使大小為 1000 整的字元陣列,存放不下 1000 的想存放的字串內容。

 

因此,可以試試看把陣列大小設成 1001 。如果還是錯誤,表示有「可能」是題目的紕漏。

以上。



我 WA 的測資點是最後 2 筆,當時我開了 1010 個字元吃了WA,所以字串應該不只 1009個字元

只要處理有關字串的題目,我都會習慣性再開大一些,題目說最多 1000個,我至少開到 1010個,甚至 1100、2000個

或許真的有測資與題目敘述不符的情形......

 
#17223: Re:C的


qqrainbow (愛蜜莉雅)

學校 : 國立嘉義高級中學
編號 : 83319
來源 : [36.238.5.68]
最後登入時間 :
2023-04-26 23:31:35
c929. 蝸牛老師的點名單-續 | From: [36.236.63.122] | 發表日期 : 2019-03-29 19:38

剛剛撈了一下測資,最大有2000個字元。

所以用字元陣列的話需要開到2001個。

 
ZeroJudge Forum