Posted on 2007-08-03 13:06
寶杉 閱讀(187)
評論(0) 編輯 收藏 引用 所屬分類:
C++
內存分配方式
1 靜態存儲區域 全局變量 static
2 棧 局部變量
3 動態存儲區域(堆)(malloc free) (new delete)
常見錯誤和對策
1 內存分配未成功。
對策:程序入口處,檢查指針是否為NULL。
(1)參數*p所指向的內存,用assert( p != NULL)
(2)malloc或new申請的內存,用if ( p != NULL)
2 內存未初始化。
3 內存操作越界。
4 忘記釋放內存,內存泄露。
new與delete配對。
5 釋放內存,卻繼續使用。
(1)return不能返回“棧內存指針”和“引用”,因為該內存在函數結束時被銷毀。
(2)釋放內存后,設為NULL,防止“野指針”。
規則
1 申請內存后檢查。assert( p != NULL)
2 數組、動態內存初始化。
3 申請釋放要配對。
4 釋放內存設置NULL,防止產生野指針。