new
操作符在 c++ 中用于动态分配内存,创建对象,并返回指向分配的内存的指针
- 首先会计算需要分配的内存大小
- 尝试分配所需要大小的内存
- 如果
分配成功
,则会调用构造函数来初始化对象,并返回指向新分配内存的指针
分配失败
,会导致返回空指针或抛出异常
- 返回空指针:如果分配内存失败,即堆中没有足够的空闲内存来满足要求,
new
操作符会返回一个空指针(nullptr
或NULL
),表示分配失败 - 抛出异常: 在 C++ 中,如果没有足够的内存分配,
new
操作符将抛出std::bad_alloc
异常。这是std::bad_alloc
类的一个实例,它是 C++ 标准库中定义的用于表示内存分配失败的异常类。你可以通过捕获此异常来处理内存分配失败的情况
- 返回空指针:如果分配内存失败,即堆中没有足够的空闲内存来满足要求,
1
2
3
4
5
6
7
8
9
10
11
12
13
try {
// 尝试分配一个 int 对象的内存并初始化
int* ptr = new int(42);
// 使用 ptr 指向的内存
// ...
// 释放分配的内存
delete ptr;
} catch (const std::bad_alloc& e) {
// 处理内存分配失败的情况
std::cerr << "Memory allocation failed: " << e.what() << std::endl;
}
写在最后
感谢你在茫茫人海中找到我🕵🏼
🎉你是第 个读者
㊗️ 你平安喜乐,顺遂无忧!
希望你读完有所收获~
🥂🥂🥂