在我們寫程式使用指標的時候,必須對指標進行手動初始化,否則會存在出現bug的可能性,c++為我們提供了一種管理指標的方法。
在c++中,我們可以通過new
來為建立的指標自動分配記憶體,避免手動分配
手動分配較為麻煩,如下所示:
int heggle =5;
int* ptr =
&heggle;
使用new
進行記憶體分配,如下所示:
int
* ptr =
newint
;*ptr =
5;
使用new
後,程式會自動在記憶體中尋找合適的記憶體位址來存放ptr
指標,然後ptr
指向了存放value的位址
在使用完指標後,我們必須對其進行釋放,使用delete ptr
進行指標釋放
new和delete分配記憶體
一.當記憶體用完時 當找不到足夠大的連續的記憶體塊用於存放物件時,乙個稱為new handler的函式被呼叫,或者檢查指向函式的指標,如果非0,則那個函式被呼叫 new handler的預設動作是丟擲乙個異常。通過包含new.h,然後以我們想呼叫的函式位址為引數,呼叫set new handler ...
4 7 4 使用new來分配記憶體
前面,我們將指標初始化為變數的位址 變數是在編譯時分配的 有名稱的記憶體,而指標只是為可以通過名稱直接訪問的記憶體提供了乙個別名。指標真正的用武之地在於,在執行階段分配未命名的記憶體以儲存值。在這種情況下,只能通過指標來訪問記憶體。new的用法 int pn new int new int告訴程式,...
C 使用new來分配記憶體
對位址的工作方式有一定了解後,來看看它如何實現在程式執行時分配記憶體。前面我們都將指標初始化為變數的位址 變數是在編譯時分配的有名稱的記憶體,而指標只是為可以用過名稱直接訪問的記憶體提供了乙個別名。指標真正的用武之地在於,在執行階段分配未命名的記憶體以儲存值。在這種情況下,只能通過指標來訪問。在c語...