[討論] IDE執行會出錯但gcc就可以

看板C_and_CPP作者 (Veck)時間11年前 (2012/12/28 22:20), 編輯推噓9(9019)
留言28則, 11人參與, 最新討論串1/1
今天幫我弟他們那組的作業 debug 因為他們是用 codeblock 編譯和執行 我找到可能是錯誤的地方以後 做了修改,果然成功執行無錯誤 就在我弟很高興得跟同學討論時 竟然又發現一個 bug 所以我想就重新從未修改的 code 開始檢查 但在此之前我先嘗試用了安裝在電腦中的 MinGW GCC 編譯後執行 竟然可以正確無錯誤發生 然後我又到了學校的工作站上(BSD)用 gcc 編譯和執行 也是正確無誤 因為好像之前也發生過我用Dev-C編譯和執行的程式會出錯,但是gcc不會 (從此之後我習慣以gcc作為編譯和執行的首選) 所以便跟弟弟說是他用的 IDE 中C Compiler 有些問題 不過我不是很確定,反而覺得可能是那種所謂的"warning"或潛在 bug 造成的 不知道有沒有人也有這樣的經驗 後來我看了弟弟他們的作業投影片中也有提到 "至少要gcc可以compile" 他說他們助教也都用 gcc 可是他們一年級好像用慣了 IDE (XDDDD) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.84.81

12/28 22:32, , 1F
先把有問題的code貼上來再說
12/28 22:32, 1F

12/28 22:59, , 2F
你查看看IDE幫你下的參數
12/28 22:59, 2F

12/28 23:36, , 3F
水晶球…水晶球…顯出景象…
12/28 23:36, 3F

12/28 23:44, , 4F
除非是用 vc6.0 , 否則 c compiler 要有問題大概也很難吧
12/28 23:44, 4F

12/29 00:58, , 5F
你什麼code都不貼 我們要靠冥想跟你說答案嗎
12/29 00:58, 5F

12/29 01:23, , 6F
你就寫一個假的 gcc 看它丟了哪些 option 呀
12/29 01:23, 6F

12/29 10:26, , 7F
抱歉,馬上補上Code :http://goo.gl/lY7JB
12/29 10:26, 7F

12/29 11:50, , 8F
如果是 VC6 那光是變數中間插入 statement 就會出問題了
12/29 11:50, 8F

12/29 11:51, , 9F
^宣告
12/29 11:51, 9F

12/29 11:54, , 10F
他們用Code::Blocks,前面就說了。
12/29 11:54, 10F

12/29 12:03, , 11F
你的code在ideone上無法執行 http://ideone.com/OgDBLK
12/29 12:03, 11F

12/29 12:04, , 12F
錯誤是segmentation fault 他們是gcc-4.3.4
12/29 12:04, 12F

12/29 12:28, , 13F
我想應該是原 po 的 globe variable root 沒初始化
12/29 12:28, 13F

12/29 12:29, , 14F
在 access() 裡面 if(root == NULL) 這裡很可能會爆炸 XD
12/29 12:29, 14F

12/29 12:30, , 15F
global
12/29 12:30, 15F

12/29 13:23, , 16F
我怎麼印象中 global 指標會初始化為 NULL?
12/29 13:23, 16F

12/29 17:10, , 17F
太大意了 <( ̄︶ ̄)/
12/29 17:10, 17F

12/29 17:13, , 18F
那在 access 裡用 calloc 吧,至少 valgrind 不會叫
12/29 17:13, 18F

12/29 17:14, , 19F
conditional jump depends on uninitialized values
12/29 17:14, 19F

12/29 17:20, , 20F
跟我做的題目一樣,看來是同學XD
12/29 17:20, 20F

12/29 17:41, , 21F
對耶!pointer沒有初始化,不過我後來自己去下載codeblock
12/29 17:41, 21F

12/29 17:41, , 22F
可能因為我本身有裝gcc,竟然codeblock也OK了!
12/29 17:41, 22F

12/29 17:42, , 23F
所以真的跟codeblock的compiler有關吧?code應該也有bug
12/29 17:42, 23F

12/29 17:52, , 24F
上面有ideone的gcc版本,確定一下你其他環境的版本。
12/29 17:52, 24F

12/29 18:19, , 25F
ㄈㄈ SG的原因根本不是那個 http://ideone.com/uMzhQ3
12/29 18:19, 25F

12/29 18:20, , 26F
這種網路平台能讓你開檔才奇怪吧
12/29 18:20, 26F

12/29 22:04, , 27F
你弟是不是唸交大,資工大二,資料結構教授姓李?
12/29 22:04, 27F

12/29 22:22, , 28F
CodeBlock的compiler起始時會自己detect吧?
12/29 22:22, 28F
文章代碼(AID): #1GtQgu6q (C_and_CPP)