C++中的new有幾種?

1.普通new
形式:int* p = new int;
此時不能通過p是否爲nullptr來判斷內存是否開闢成功,而是需要通過bad_alloc來捕獲異常。

2.(nothrow) new
形式:int *p = new (nothrow) int(20);
此時指針已經退化爲C語言中通過malloc開闢內存得到的指針,是可以通過判空來驗證是否成功開闢內存。

3.申請指向常量內存的指針的new
形式:const int* p = new const int(20);

4.定位new
形式:int data = 0;
int *p = new (&data) int(20);

在已知的內存上進行new。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章