作者obelisk0114 (追風箏的孩子)
看板C_and_CPP
標題[問題] Segmentation fault
時間Tue Dec 6 17:17:28 2016
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
有時候執行會出現 Segmentation fault, 有時候會正常運行
餵入的資料(Input):
兩筆數值資料,比較誤差
程式碼(Code):(請善用置底文網頁, 記得排版)
https://github.com/r02941066/Question/blob/master/compareInput.c
補充說明(Supplement):
一個問題用 C/C++ 和 CUDA-C 執行,各自產生一個txt,比較結果
這是用來比較 txt檔案的程式
所以設定相對誤差,若在誤差範圍內視為正確
我覺得讀檔案那裏可能有點問題,因為有時候會出現 Segmentation fault
有時候又能正常執行而沒有出錯
--
肝不好 ▁▁ ● ◤
肝若好
人生是黑白的 ▏ ◤
考卷是空白的
▏ ◤
、 ﹐
● ●b 囧 ▎ ●> ● ◤
▌ ﹍﹍ 0 ▊囧>
幹...
▲ ■┘ ■ ▎ ■ █◤ ▌ ㄏ▋ ︶■
〈﹀ ∥ ▁▁∥ ▎ ﹀〉◤
▋ ▊ 〈\
ψcockroach727
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.95.52.50
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1481015854.A.288.html
1F:→ pttworld: 通常是陣列索引超出範圍,先檢查所有的資料長度。 12/06 18:31
在 server 上跑的,不知道會不會用到我不能用的記憶體
2F:→ pttworld: const char s[2] = ", "; 這是奇怪的。 12/06 18:31
看不懂
3F:→ friends29: 你一開始char pointer沒有 initialize 12/07 16:04
第 18 行改成
char *ORIGINAL = "", *TARGET = "";
第 52 行改成
char *token = "";
第 83 行改成
char *token2 = "";
這樣嗎 ?
4F:→ friends29: 字串最後要加上結尾符號 12/07 16:07
你的意思是第 22, 23 行要寫成這樣嗎 ?
ORIGINAL = "out1.txt\0";
TARGET = "out2.txt\0";
※ 編輯: obelisk0114 (71.95.52.50), 12/09/2016 17:56:38