使用指針的通常技巧

摘自《代碼大全》函數

1.封裝指針,把指針操做限制在子程序或者類裏指針

將指針操做封裝成函數,好比鏈表操做,NextLink()、InsertLink()。內存

 

2.誰分配誰清理,指針分配和刪除在同一個做用域作用域

有時候在多分支狀況下容易忘記釋放內存,一種常見的作法是建立一個管理分配內存的類,在析構函數中釋放全部管理的內存。內存管理

 

3.指針初始化,使用前先檢查指針有效性程序

特別是類的公共函數,傳入指針參數必須檢查指針有效性。鏈表

 

4.釋放內存後指針必須置空參數

當你申請內存時,實際使用的內存比申請的多,多的內存用於記錄申請的內存大小,鏈接到下一塊內存的信息等。調用free()釋放內存,只是將指針指向的這片內存(不必定連續)還給內存管理,並不改變指針的值。封裝

若是屢次調用free(),這種行爲致使的結果是不明確的,若是這個內存從新分配使用就會致使crash。管理

若是free的參數是空指針,free()返回不作什麼。

相關文章
相關標籤/搜索