您好,登錄后才能下訂單哦!
new可以說是個一個關鍵字,也可以說是一個運算符,并且可以被重載。C++中new運算符用于動態分配和撤銷內存的運算符。
用new分配數組空間時不能指定初值。如果由于內存不足等原因而無法正常分配空間,則new會返回一個空指針NULL,用戶可以根據該指針的值判斷分配空間是否成功。
一般來說,使用new申請空間時,是從系統的“堆”(heap)中分配空間。申請所得的空間的位置時根據當時的內存的實際使用情況決定的。但是,在某些特殊情況下,可能需要在程序員指定的特定內存創建對象,這就是所謂的“定位放置new”(placement new)操作。
1、開辟單變量地址空間
new int; //開辟一個存放數組的存儲空間,返回一個指向該存儲空間的地址.int *a = new int 即為將一個int類型的地址賦值給整型指針a. 2)int *a = new int(5) 作用同上,但是同時將整數賦值為5。
2、開辟數組空間
要訪問new所開辟的結構體空間,無法直接通過變量名進行,只能通過賦值的指針進行訪問。用new可以動態開辟,撤銷地址空間。在編程序時,若用完一個變量,下次需要再用,可以在每次開始使用時開辟一個空間,在用完后撤銷它。
擴展資料:
C++中使用new的注意事項:
1、用戶是無法主動調用構造函數的,所以需要借助placement new,但是用戶可以主動調用析構函數,所以用完這些對象后,調用析構函數,然后用對應分配內存的方法去釋放內存。
2、事實上malloc并不一定比operatornew節省多少時間,用placement new常常是為了考慮性能,所以會配合內存池一起使用。
以上就是c++中new的用法詳解的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。