Re: [問題]請問在FreeBSD底下設計程式
哈哈
修改部分程式碼讓它可以通過-Wall之後
就正常了
或許是那些亂七八糟的東西干擾了程式的運行吧..
修改的部份包括一些之前測試沒清乾淨的unused variable
還有main()要return int
還有printf("%d")改成printf("%lld") 我用的資料型態是uint64_t
大概就這些了
謝謝謝謝謝
感激不盡
※ 引述《gmobug (低等動物)》之銘言:
> 恩..
> 我確實是有些工作沒做好
> 不過我那個*res的位置是malloc出來的所以應該不會有問題
> ※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言:
> > 1. 請勿撰寫類似以下的程式碼
> > char *foo()
> > {
> > char str[] = "12345";
> > return str;
> > }
> > 2. 用 gcc 編譯的話請開 -Wall 選項,並把所有 warning 正確的解決...
> > 譬如說以上程式碼會造成 warning: function returns address of local variable
> > 相關知識請參考 C 語言基礎書籍,講 scope 和 lifetime 那章...
> > 有關 segmentation fault 的資訊,
> > 可以參考任何 Unix 或 Linux Programming 書籍,
> > 在 signal 那章...
> > 另外請參照這類書籍說明 gdb 的部分,
> > 以協助您利用 dump 出來的 core 檔搭配執行檔進行除錯,
> > 要做這個動作麻煩您在編譯時加個 -g 或 -ggdb 的參數,
> > 這樣通常就能精確抓到問題所在...
> > 至於 process 會收到這個 signal 的原因,
> > 主要是 pointer 指到 process 被 OS 授權存取的記憶體以外的區間,
> > 然後又對該 pointer 進行存取而造成的,
> > OS 會攔截這個的原因是基於安全和穩定性的考量...
> > 簡單說就是程式寫錯,
> > pointer 沒初始化就拿來用,
> > 或是根本不檢查 library function 傳回的是不是 NULL 等等的可能性都有..
--
★ <師大附中 BBS 站> bbs.hs.ntnu.edu.tw ★ From: sw169-71-109.adsl.seed.net.tw
討論串 (同標題文章)
FreeBSD 近期熱門文章
PTT數位生活區 即時熱門文章