特點(diǎn)
–編譯器不能自動(dòng)發(fā)現(xiàn)這類錯(cuò)誤,通常是在程序運(yùn)行時(shí)才能捕捉到
–時(shí)隱時(shí)現(xiàn),無明顯癥狀
分類
–內(nèi)存分配未成功,卻使用了它
–內(nèi)存分配成功,但是尚未初始化就引用它
–內(nèi)存分配成功,并且已經(jīng)初始化,但操作越過了內(nèi)存的邊界
–忘記了釋放內(nèi)存,造成內(nèi)存泄漏
–釋放了內(nèi)存,卻繼續(xù)使用它
常見錯(cuò)誤1:
–內(nèi)存分配未成功,卻使用了它
起因
–沒有意識(shí)到內(nèi)存分配會(huì)不成功
–編程新手容易犯
解決對(duì)策
–在使用內(nèi)存之前,檢查指針是否為空指針(NULL)
if (p == NULL)
{
printf("No enough memory!\n");
exit(0);
}
常見錯(cuò)誤2:
–內(nèi)存分配成功,但是尚未初始化就引用它
n起因
–沒有初始化的觀念
–誤以為內(nèi)存的默認(rèn)值全為0
解決對(duì)策
–即使是賦0值也不可省略,不要嫌麻煩
常見錯(cuò)誤3:
–內(nèi)存分配成功,并且已經(jīng)初始化,但操作越過了內(nèi)存的邊界
–例如:使用數(shù)組時(shí)經(jīng)常發(fā)生下標(biāo)“多1”或者“少1”的操作
解決對(duì)策:
–在for語句中,注意循環(huán)次數(shù)不要搞錯(cuò)
常見錯(cuò)誤4:
–忘記釋放內(nèi)存,造成內(nèi)存泄漏(Memory Leak)
–“內(nèi)存泄露”一詞類似“原料泄露”
–泄露出去的原料不能被利用,導(dǎo)致生產(chǎn)過程中原料不足
–好比借東西不還
–如果申請(qǐng)來的內(nèi)存不用,別的程序也不能用,就好像這塊內(nèi)存泄露出去一樣,造成浪費(fèi)
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |