欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c語言中new是什么

林子帆2年前105瀏覽0評論

c語言中new是什么?

C++中new運算符用于動態分配和撤銷內存的運算符。

new運算符使用的一般格式為new 類型 [初值]。

用new分配數組空間時不能指定初值。如果由于內存不足等原因而無法正常分配空間,則new會返回一個空指針NULL,用戶可以根據該指針的值判斷分配空間是否成功。

一般來說,使用new申請空間時,是從系統的“堆”(heap)中分配空間。申請所得的空間的位置時根據當時的內存的實際使用情況決定的。但是,在某些特殊情況下,可能需要在程序員指定的特定內存創建對象,這就是所謂的“定位放置new”(placement new)操作。

擴展資料:

1、用定位放置new操作,既可以在棧(stack)上生成對象,也可以在堆(heap)上生成對象。如本例就是在棧上生成一個對象。

2、使用語句A* p=new (mem) A;定位生成對象時,指針p和數組名mem指向同一片存儲區。所以,與其說定位放置new操作是申請空間,還不如說是利用已經請好的空間,真正的申請空間的工作是在此之前完成的。

3、使用語句A *p=new (mem) A;定位生成對象是,會自動調用類A的構造函數,但是由于對象的空間不會自動釋放(對象實際上是借用別人的空間),所以必須顯示的調用類的析構函數,如本例中的p->~A()。

4、萬不得已才使用placement new,只有當你真的在意對象在內存中的特定位置時才使用它。例如,你的硬件有一個內存映像的I/O記時器設備,并且你想放置一個Clock對象在哪那個位置。