程式的記憶體模型 new運算子

2021-10-09 21:48:11 字數 584 閱讀 1974

知識點1:c++中利用new操作符在堆區開闢資料

知識點2:堆區開闢的資料,由程式設計師手動開闢,手動釋放,釋放利用delete

知識點3:語法 new 資料型別

如下圖所示**所示,利用new建立的資料,會返回該資料對應的型別的指標

int

*func()

intmain()

用法示例:

int

*pi=

newint

(1024);

//pi指向的物件的值為1024

string *ps=

newstring(10

,'9');

//*ps為「9999999999」

如下圖**所示,在堆區開闢陣列

int

main()

for(

int i=

0;i<

10;i++

)//釋放陣列

delete

arr;

return0;

}

定位new運算子

通常,new 從堆中分配記憶體,但它還有另一種稱為 定位 placement new 運算子,它可以讓我們指定要使用的位置。可以通過這個特性來設定記憶體管 理規程,處理需要通過特定位址進行訪問的硬體或在特定位置建立物件。要使用定位 new 特性,需要包含標頭檔案 new。使用定位 new 運算子時,...

定位 new 運算子

定位 new 運算子 和普通的new 運算子在堆上隨機分配記憶體相比,定位 new 運算子可以在特定的位址位置 定位 new 運算子的具體使用例項 const int buf 512 const int n 5 char buffer buf void part9 newplace 定位new 的其...

定位new運算子

一般的new運算子負責在heap堆中找到乙個足以能夠滿足要求的記憶體塊。定位new運算子在標頭檔案中。定位new運算子直接使用傳遞給它的位址,它不負責判斷哪些記憶體單元已被使用,也不查詢未使用的記憶體塊。這將一些記憶體管理的負擔交給了程式設計師。下面用乙個簡單的程式來說明定位new的用法 inclu...