C++中的new有几种?

2022-02-25 08:28:40 浏览数 (2)

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。

0 人点赞