操作符 new 動態變數 基本記憶體管理

2021-05-28 10:16:51 字數 495 閱讀 5962

1.用操作符new建立指定型別的乙個新的動態變數,返回指向這個新變數的指標。

int *p;

p=new int;

c++標準規定,若沒有足夠的記憶體來建立新變數,操作符new缺省會終止程式。

系統會為動態變數保留乙個特殊的記憶體區域,它稱為自由儲存。程式新建的任何動態變數都會消耗自由儲存中的部分記憶體。如果你的程式建立了太多的動態變數,就可能耗盡自由儲存中的所有記憶體。

操作符ndelete銷毀乙個動態變數,將它占用的記憶體還給自由儲存。這樣就可重用那些記憶體來建立新的動態變數。例如,一下語句可銷毀指標變數p指向的動態變數:

使用new操作符建立的變數稱為動態變數,因為他們是在程式執行時建立和銷毀的。與這些動態變數相比,普通變數似乎是靜態的,但事實不是這樣的。想想函式的形參情況??

delete p;

2. 虛懸指標

如果乙個指標變數指向被銷毀的動態變數,那個指標也會進入未定義狀態。這些未定義的指標變數稱為虛懸指標。

c 特有的動態分配記憶體new操作符

通過new來動態分配記憶體並返回分配的記憶體首位址。例如 int ps new int 或者開闢乙個記憶體塊 int pt new int 10 同樣動態分配的記憶體 使用過後要記得 給系統,用delete 釋放 include using namespace std int main 使用new ...

C 記憶體管理 new操作符和delete操作符

使用new 型別 可以申請乙個 型別 的空間,返回值為 型別 的指標,例如new int 申請單個型別的空間 new int 10 申請陣列的空間 new申請的空間也是在堆裡。使用new 單個型別 初始化值 可以進行初始化,連續的空間不可以使用此方式進行初始化 用delete 單個型別 來釋放單個型...

關於C 類與動態記憶體分配中布局new操作符

const int buf 512 class justtesting justtesting public int main 以上 片斷中,pc1和pc3為布局new操作符來分配記憶體,而pc2和pc4為常規new操作符來分配記憶體 對於常規new操作符分配的記憶體,可以直接使用 delete p...