讀取位置時發生訪問衝突

出現這種錯誤主要是訪問了不屬於自己的內存空間,大概出錯有以下幾種原因:

1、數組分配的內存空間比較小,然後給數組賦的值比較大。例如:

char buf[5];

buf = "噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠噠";

這樣就會出現錯誤。

解決方法:

給數組分配更大的內存空間,例如:char buf[1024];


2、句柄或指針在使用前被釋放

分析:

內存衝突問題經常發生於用malloc等進行內存分配後指針的使用。 C和C++中的指針,其優勢很明顯,靈活,方便,使用起來簡單;劣勢當然也很明顯,就是容易導致系統崩潰,指針操作不當,或沒有及時釋放,或沒有判斷指針是否越界,或沒有及時置空,這些都很容易導致系統崩潰,所以使用指針一定要考慮嚴謹。


解決方法:

檢查代碼配合調試,揪出野指針。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章