看板 b97902HW 關於我們 聯絡資訊
覺得使徒七的測試程式有問題... 我用strtok的方法寫的,其中有一個存id位置的array id[LMAX] 改變LMAX從1000, 1002, 1010, 1012, 1013 每次測的分數都不一樣 其中1011 可得10分....有些9分6分4分7分... 不知是否是批改程式allocate memory時的問題... b97058,紀錄與程式在裡面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.84
ckclark:應該是 sizeof(nothing) == 4000 的關係 10/29 22:07
ckclark:小聲說 我們沒有什麼測試程式 只有你的程式 & 我們的測資 10/29 22:08
dh3014:嗯,就我所看到的,是 i < (int)sizeof(nothing) 的問題 10/29 22:21
dh3014:這樣子的話一開始宣告 char nothing[40][100] 就有問題 10/29 22:21
xflash96:謝謝。可是我用printf debug時出錯的地方是在變存數辨認 10/29 22:29
xflash96:在ubuntu下跑也沒segment fault... 10/29 22:29
xflash96:超奇怪的,有時a出問題卻在不相干的b產生影響... 10/29 22:31
dh3014:當你今天使用了超過宣告範圍的陣列索引值,可能的情況很多 10/29 23:18
dh3014:可能剛好沒事,過了。可能os給process的memory space剛好 10/29 23:19
dh3014:沒了->segmentation fault,可能compiler在後面放了別的變 10/29 23:19
dh3014:數->某些變數的值會有神秘的side effect... 所以牽扯到陣列 10/29 23:20
dh3014:索引值的bug,在不同的平台、compiler下有不同的結果,不是 10/29 23:20
dh3014:什麼奇怪的事。 10/29 23:20
ckclark:剛看到跑sizeof(nothing)會跑到存identifier的記憶體 10/29 23:30