1,在c語言中,入參判斷是很重要的一環,但是有時候入參的判斷會導致記憶體洩漏或者是控制代碼洩露,我們來舉例來說明吧!
(1)記憶體洩漏
int function_test1(int c)
/***********
if( c < 0)
**********/
free(p);
return 0;
}
總結:
1) 每次申請記憶體前必須明確由誰負責釋放,何時釋放,在何處釋放;
2) 在異常分支中,保持清醒,一定要在return語句前考慮是否要釋放記憶體;
3) 記憶體申請後立即檢查是否申請成功,不要多個指標用同乙個if語句判斷;
4) 申請記憶體成功後,禁止對指向給記憶體位址的指標重新賦值。
int function_test2()
/************
if (p == null && q != null)
else if(
記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位
記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...
C 記憶體洩漏
記憶體洩漏 記憶體溢位 out of memory 通俗理解就是記憶體不夠,通常在執行大型軟體或遊戲時,軟體或遊戲所需要的記憶體遠遠超出了你主機內安裝的記憶體所承受大小,就叫記憶體溢位。記憶體洩漏 memory leak 是指程式中已動態分配的堆記憶體由於某種原因程式未釋放或無法釋放,造成系統記憶體...
記憶體溢位和記憶體洩漏
記憶體溢位 oom 指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現oom 記憶體洩露memory leak 指程式在申請記憶體後,無法釋放已申請的記憶體空間,一直占用著這塊記憶體空間。記憶體溢位就是你要求分配的記憶體超出了系統能給你的,系統不能滿足需求,於是產生溢位。記憶體洩漏是指你向系統...