首先 我們需要來了解什麼是野指標:未初始化的指標,系統給了乙個隨機位址 導致了記憶體洩露的錯誤 這也是最常見的段錯誤之一。
避免野指標的方法最好就是養成良好的編碼習慣:
1: 當指標沒有指向的時候 令其指向空 char *p = null;
2:當向指標指向的空間賦值時,注意檢查有無分配空間。
*ptr = malloc(100)=malloc(sizeof(char)*100)= (char *)malloc (sizeof (char)* 100)
第二個等號 相對於第乙個 提高了 **的相容性 第三個等號對malloc的返回值進行了強制裝換 原先為void * 是萬能指標 避免將值賦給指標時候 發生不同型別之間的轉換『
3:檢查空間是否分配成功
if(ptr == null);
printf(「error」);
exit(1);(退出程式)
5:指標呼叫結束後 歸還空間 free(ptr);
6:重新令指標指向空 ptr = null;
避免野指標的方法
野指標是沒有初始化的指標,它非法的指向一塊記憶體空間,會造成記憶體洩露,產生段錯誤。避免野指標有以下幾點 1 養成良好的變成習慣,當不能確定指標指向時,初始化為空 2 當給初始化指標賦值時,要用malloc給其分配記憶體空間。3 檢查空間是否分配成功 4 清理記憶體空間 5 使用完記憶體空間後釋放 ...
什麼是野指標?野指標的危害?如何避免野指標?
什麼是野指標?野指標是指隨機指向一塊記憶體的指標 野指標的危害?如何避免野指標?我們要在以後養成良好的編碼習慣 1.將沒有指向的指標初始化指向null 指向null的指標不能對他的指向進行修改 2.當想給乙個指標指向的空間賦值時,一定要給這個指標分配空間 malloc 3.當空間分配完後,要檢查這個...
野指標產生的原因和避免方法
struct student stu,pstu intmain void 這是很多人都容易犯的錯誤 定義了結構體變數stu,但結構體內部的char name在定義結構體時只是為其分配了4位元組的記憶體,沒有指向乙個合法的位址,這時其指標指向的區域只是一些亂碼,有事還沒有訪問許可權。這就是我們通常所說...