首先 我們需要來了解什麼是野指針:未初始化的指針,系統給了一個隨機地址 導致了內存泄露的錯誤 這也是最常見的段錯誤之一。
避免野指針的方法最好就是養成良好的編碼習慣:
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);(退出程序)
4:對空間進行初始化 memset(空間地址,'\0’, sizeof(char) *100);
5:指針調用結束後 歸還空間 free(ptr);
6:重新令指針指向空 ptr = NULL;