摘自《代碼大全》函數
1.封裝指針,把指針操做限制在子程序或者類裏指針
將指針操做封裝成函數,好比鏈表操做,NextLink()、InsertLink()。內存
2.誰分配誰清理,指針分配和刪除在同一個做用域作用域
有時候在多分支狀況下容易忘記釋放內存,一種常見的作法是建立一個管理分配內存的類,在析構函數中釋放全部管理的內存。內存管理
3.指針初始化,使用前先檢查指針有效性程序
特別是類的公共函數,傳入指針參數必須檢查指針有效性。鏈表
4.釋放內存後指針必須置空參數
當你申請內存時,實際使用的內存比申請的多,多的內存用於記錄申請的內存大小,鏈接到下一塊內存的信息等。調用free()釋放內存,只是將指針指向的這片內存(不必定連續)還給內存管理,並不改變指針的值。封裝
若是屢次調用free(),這種行爲致使的結果是不明確的,若是這個內存從新分配使用就會致使crash。管理
若是free的參數是空指針,free()返回不作什麼。