野指標和記憶體溢位

2021-07-02 19:39:51 字數 433 閱讀 9996

1.野指標

野指標是表示指標指向的記憶體空間被釋放了,導致這個指標指向了不能使用的空間,如果在訪問則會出錯,所以一般在釋放空間後給野指標賦值null 例:

intmain(

intargc,

const

char

* argv)

銷毀開闢的空間後,p指標指向了不可用的空間,此時p成為了野指標

2.記憶體溢位

記憶體溢位是說指向該記憶體的指標變數在棧中被銷毀後,而這塊記憶體沒有被銷毀,導致這塊記憶體不能被釋放。 例:

intmain(

intargc,

const

char

* argv)

當上面的p變數在main函式執行完後,指標變數p從棧中被銷毀,但是開闢的4個位元組大小的空間卻沒有被銷毀,導致記憶體溢位了。

p指標被銷毀後

野指標 記憶體洩漏 快取區溢位 棧溢位

今天梳理一下相關概念,用自己的語言來描述下 1.野指標 比如說吧 int main 輸出 當程式執行時是作為乙個程序,乙個程序有自己的虛擬空間,低位址是程式 和資料,然後是執行時堆,再然後是共享庫 標準庫之類的 然後是棧空間,用於函式區域性呼叫時 此時b指向了低位的程序位址,此時操作野指標b讀取可能...

C C 中的記憶體洩漏 記憶體溢位 野指標

記憶體溢位 野指標發生原因class object object intmain class object1 int main 發生原因 為什麼說strcpy和strncpy是c 的危險函式 2.strncpy strncpy dest,src,sizeof dest dest sizeof des...

C語言野指標 記憶體洩漏 記憶體溢位的概念

野指標 釋放指標所指向的記憶體空間,和指標無關 在堆區分配100 sizeof char 個位元組的記憶體 char p char malloc 100 sizeof char 在用完後釋放記憶體 free p 這時候指標p所指向的存空間被釋放。但是這個時候p指標的值沒有發生變化,然後所指的記憶體空...