[問題] 好怪的記憶體錯誤..
我寫了一個程式,有使用到其他人寫得程式(FLUTE,網路上公開的免費程式)
不知道為甚麼,使用他跑一些資料比較小的東西還OK
如果資料大了反而會錯
然而我不覺得是他固定array大小的關係
因為資料量並沒有超過他設定的上限
我用gdb的結果
Program received signal SIGSEGV, Segmentation fault.
0x000000000043646c in flutes_MD (d=Cannot access memory at address
0x7fffea46ec38 ) at ./include/FLUTE/flute.c:809
809 Tree flutes_MD(DTYPE d, DTYPE xs[], DTYPE ys[], DTYPE s[], DTYPE acc)
上文有寫到d=Cannot access memroy at address....
後來我使用bt,查詢他上一行的資料
顯示d=p+1(此處p=9,故傳入時d應該為10)
不過有問題的地方在於,他的程式是call by value,亦即應該不會有上述的狀況
(有其他的case一樣p=9帶入並不會有問題,故應該不是value的關係)
我個人覺得應該是系統的關係
請問有沒有辦法強制一個程式執行的記憶體範圍呢?
感謝m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.145.212
推
08/11 13:56, , 1F
08/11 13:56, 1F
→
08/11 13:57, , 2F
08/11 13:57, 2F
→
08/14 14:06, , 3F
08/14 14:06, 3F
→
08/14 14:07, , 4F
08/14 14:07, 4F