一、內存申請
1.建議使用calloc申請內存,盡量不要使用malloc。
calloc在動態分配完內存后,自動初始化該內存空間為零,而malloc不初始化,里邊數據是隨機的垃圾數據。
2.申請內存大小必須大於0.
(1)使用0字節長度申請內存的行為是沒有定義的,在引用內存申請函數返回地址時會引發不可預知錯誤,對於可能出現申請0長度內存的情況非常有必要判斷,避免出現這種情況。
(2)使用負數長度申請內存,負數會被當成一個很大的無符號整數,導致申請內存過大而出現失敗。
3.申請內存后檢查是否申請成功,即檢查返回指針是否為NULL,即是否為0。
二、內存釋放
1.申請的內存一定需要釋放,有且僅能釋放一次
2.禁止釋放或函數內返回非動態申請的內存(棧中的內存,函數中的臨時變量等)
3.指針釋放后必須將指針指向空指針,否則會出現野指針的情況。
轉自:https://www.cnblogs.com/lh218/p/5373907.html