看板 C_and_CPP 關於我們 聯絡資訊
我用一個函數包一個外部讀檔的程式 GLfloat [8][3] = {}; GLfloat [6][4] = {}; void ReadFile() { .... 開檔 .... 切字串 .... 將字串丟入點陣列 } //glutDisplayFunc 要用的函數 void show() { .... .... .... } ....... ....... int main(int argc, char **argv) { ReadFile() ..... ..... ..... glutDisplayFunc(show) //RuntimeError . } 我不太清楚Runtime Error的原因 因為ReadFile()原本是另一隻程式 而且單獨跑得時候沒有任何問題,不管是Compiler Time 或是Runtime 但是包成函數卻產生了Runtime Error 這就是我不太能理解的地方 以下是程式碼:http://rafb.net/p/mn2YOS99.html 還請各位不吝指教,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.32.184
QQ29:你這樣是每個frame都讀檔一次 你有close檔案嘛? 04/03 12:17
godman362:程式碼中有寫到,包在ReadFile中 04/03 12:26
godman362:在我附上的網址中有寫到,這點我可以確定 04/03 12:26
godman362:原本的作法,是將ReadFile放在main的第一行 04/03 12:27
godman362:但是結果依舊一樣,所以後來才放去show中 04/03 12:28
※ 編輯: godman362 來自: 122.118.32.184 (04/03 12:40)
littleshan:你的記憶體到底是怎麼配置的? 04/03 13:03
godman362:就是我前面兩行紅字,讀完檔後都是放入那兩個陣列 04/03 13:20
godman362:其他的都只是暫時性的變數宣告 04/03 13:22
VictorTom:請問是glutDisplayFunc()這行錯, 還是進去show了才錯?? 04/03 13:48
VictorTom:如果進去才錯, 要不要試著break再show裡在debug跟一下?? 04/03 13:49
godman362:那是把ReadFile放入show才會出錯,問題本身還是ReadFile 04/03 13:59
VictorTom:您第三推不是說放在main第一行也一樣, 所以是error在 04/03 14:04
VictorTom:ReadFile裡就對了?? 第一個反應還是掛debug....Orz 04/03 14:04
godman362:是這樣沒錯,問題本身還是在於使用了ReadFile() 04/03 14:14
godman362:我所附得程式碼中,是我所講得ReadFile放在main中第一行 04/03 14:15
VictorTom:對不起我有點亂了Orz 所以您現在link的code是error在 04/03 14:17
VictorTom:ReadFile裡就對了; code裡 Vertex[][3] = {} 沒有空間 04/03 14:17
VictorTom:給它放data?? 那兩行和您文章裡的紅字不一致@_@" 04/03 14:18
godman362:抱歉,程式後來有修正為GLfloat Vertex[8][3] 04/03 14:19
godman362:所附得程式碼陣列後來有修正成紅字的部份 04/03 14:19
VictorTom:不好意思, 應該是小弟幫不上忙還問一堆狀況外的問題Orz 04/03 14:33
VictorTom:回去上班前亂猜, atof()在stdlib.h裡, 沒include到XD 04/03 14:34
WalkingIce:glutDisplayFunc 只是接上一個 callback function 唷! 04/03 15:45
godman362:atof沒有問題,這個我從以前用到現在都是這樣使用 04/03 16:59
godman362:至於W大的意思我不太清楚,可以請您講詳細些嗎 04/03 17:03
godman362:我現在用硬幹的,用extern拉進來用,反而沒有問題 04/03 17:51
godman362:Runtime跑得也很正常....? 04/03 17:52