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。

发布了235 篇原创文章 · 获赞 51 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/ASJBFJSB/article/details/104082527