linux運行程序段錯誤··要怎么解決··
1、重裝沒有用,core dump是應(yīng)用程序問題。當程序運行的過程中異常終止或崩潰,操作系統(tǒng)會將程序當時的內(nèi)存狀態(tài)記錄下來,保存在一個文件中,這種行為就叫做Core Dump(中文有的翻譯成“核心轉(zhuǎn)儲”)。
2、char buf[MAXSIZE]; 懷疑可能由于編譯器或其他原因,系統(tǒng)并沒有為buf分配內(nèi)存空間。導(dǎo)致在fgets的時候出現(xiàn)段錯誤 可以通過malloc分配空間,或者使用 static char buf[MAXSIZE]; 的方式試一下,看看是不是這個問題。
3、Linux系統(tǒng)下面出現(xiàn):Segmentfault(段錯誤)提示信息,有時候是由于你自己在編寫程序的過程中,有數(shù)組越界、或者是內(nèi)存泄漏(例如:引用了空指針)等原因造成的。
Linux下運行的,一直提示段錯誤,怎么修改?求幫忙
重裝沒有用,core dump是應(yīng)用程序問題。當程序運行的過程中異常終止或崩潰,操作系統(tǒng)會將程序當時的內(nèi)存狀態(tài)記錄下來,保存在一個文件中,這種行為就叫做Core Dump(中文有的翻譯成“核心轉(zhuǎn)儲”)。
首先char *s;這個定義一個指針,而指針的含義是指向一個地址。char *s;這個定義,僅僅定義了一個指針,至于這個指針指向哪塊地址沒定義。所以系統(tǒng)可能默認給s隨機賦值。
你可以對比一下root用戶和可以成功執(zhí)行的用戶兩者間的環(huán)境差異,用set命令各導(dǎo)出一份環(huán)境變量列表,看是否哪里有不同。另外,還可以對比檢查一下ulimit -a,看是否不同。
char buf[MAXSIZE]; 懷疑可能由于編譯器或其他原因,系統(tǒng)并沒有為buf分配內(nèi)存空間。導(dǎo)致在fgets的時候出現(xiàn)段錯誤 可以通過malloc分配空間,或者使用 static char buf[MAXSIZE]; 的方式試一下,看看是不是這個問題。
linux下終端運行文件,代碼沒有錯誤,為什么出現(xiàn)段錯誤。
1、如果將新建線程ID向地址0保存,會發(fā)生越界錯誤。
2、你的&符號忘了。你的指針沒有指向可以利用的空間。。一時想不起來太多,你把程序貼出來。
3、主要有以下幾個方面的原因:內(nèi)存訪問出錯 這類問題的典型代表就是數(shù)組越界。非法內(nèi)存訪問 出現(xiàn)這類問題主要是程序試圖訪問內(nèi)核段內(nèi)存而產(chǎn)生的錯誤。棧溢出 Linux默認給一個進程分配的??臻g大小為8M。