Linux編程時出現Segmentation(fault錯誤如何解決?)
導讀大家好,小太來為大家解答以上問題。Linux編程時出現Segmentation,fault錯誤如何解決?很多人還不知道,現在讓我們一起來看看吧!方法如下這個錯誤是怎么導致的呢?原來是在定義一個cha
大家好,小太來為大家解答以上問題。Linux編程時出現Segmentation,fault錯誤如何解決?很多人還不知道,現在讓我們一起來看看吧!
方法如下:
這個錯誤是怎么導致的呢?原來是在定義一個char類型的指針,然后就直接對這個指針進行字符串的相關操作。例如:
char *c1;
for(i=0; i《n;i++)
{
*c1 = getchar();
c1++;
}
代碼意思大概是這樣,這是很多開發者會犯的問題。這個指針危險啊,要謹慎對待,就拿這里來說,這樣給指針賦值,我們并不知道這指針指向的是哪里呢,如果寫的數據覆蓋了關鍵區域數據那可能會有災難性的后果,這就是訪問了不該訪問的地方。解決的辦法是什么呢,告訴這個指針到該到的地方,我用malloc為該指針將要指向的字符串申請一段空間,這樣就會指明系統分配一段安全的空間,不會在把內存關鍵區域分給你了。這樣你就可以安全操作了。
這個例子告訴我們指針是不能亂用的,如果指針指向錯誤的內存,導致編程時出現Segmentation fault錯誤,還可以用上面的辦法處理,如果指向其他區域,還會導致更嚴重的后果。
免責聲明:本文章由會員“高書”發布如果文章侵權,請聯系我們處理,本站僅提供信息存儲空間服務如因作品內容、版權和其他問題請于本站聯系