關於記憶體錯誤

laoguaixu發表於2009-04-19

有時函式返回一個指標,使用指標會導致記憶體錯誤,雖然在使用之前檢測其是否為NULL。原因在於,函式返回的指標,是在函式內部定義,然後返回的。如果在定義時不初始化為NULL,比如以下程式碼:

void* func(){

void *p;

p = ......;

return p;

}

因為沒有初始化,所以,指標p是有值的,所以,檢測時就不是NULL,但是它指向的可能是無許可權訪問的地址,或者,是可訪問的求知地址,兩種都會造成錯誤。而後者在某些情況下可能會更加嚴重,因為這個錯誤可以被可訪問的記憶體地址掩蓋。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13895933/viewspace-1020871/,如需轉載,請註明出處,否則將追究法律責任。

相關文章