指標的記憶體的申請和釋放本質

2021-09-27 11:53:14 字數 660 閱讀 6148

c++標準規定:delete空指標是合法的,沒有***。

一、delete之後將指標設定為null的好處

所以我們在delete指標後賦值為null或0是個好習慣。對乙個非空指標delete後,若沒有賦null,若再次delete的話

有可能出現問題。如下**:

可以看出delete是釋放指標指向的記憶體,並不是指標本身所占有的記憶體。所以delete後,指標的還是指向那塊區域,並

未清0,所以如果下次用到,就會發生***空間不能訪問的異常。

以後delete後要賦值為空

二、理解delete指標的實際意義

1、。你只是放棄了對這片記憶體的所有權。獲得所有權的人對這片記憶體做什麼(或者說什麼都不做)都不關你的事。

三、申請記憶體和釋放記憶體的本質意義:

2、指標指向的物件已經被析構,再呼叫指標會出現的情況:

個人的見解:

指標的原理:當我們申請堆空間時,系統就會有乙個標誌來告訴我們,這些堆記憶體是沒有人用的,給你用了。當你使用delete時,就是告訴系統那些堆記憶體我不用了,你拿去給別人用吧,這是時候,你之前寫的東西還是在那裡的,而且這個指標還是指向堆記憶體,而且那個堆記憶體裡的東西,如果系統一直沒用使用的話,它的值會一直存在。

所以為防止釋放了堆記憶體的指標又再次去訪問該堆記憶體,我一定要養好delete完,把該指標置空的習慣。

記憶體的申請和釋放

常規用法 virtualalloc lpvoid lpaddress,size t dwsize,dword flallocationtype,dword flprotect lpaddress,指定記憶體開始的位址。dwsize,分配記憶體的大小。flallocationtype,分配記憶體的型別...

記憶體的申請和釋放

在c裡,記憶體管理是通過專門的函式來實現。另外,為了相容各種程式語言,作業系統提供的介面通常是c 語言寫成的函式宣告 windows 本身也由c和組合語言寫成 1分配記憶體malloc函式 需要包含標頭檔案 and 函式宣告 函式原型 void malloc int size 說明 malloc 向...

共享記憶體的申請和釋放

1.通過對映來申請記憶體 物理頁可以在多個程序中共享 mapviewoffile是計算機函式,功能是將乙個檔案對映物件對映到當前應用程式的位址空間。mapviewoffileex允許我們指定乙個基本位址來進行對映。需要和 關閉對映 unmapviewoffile g lpbuff 配套使用 1 共享...