在C++中,new
操作符用于动态地分配内存
new
分配内存:int* numPtr = new int; // 分配一个整数大小的内存空间
int* numPtr = new int(42); // 分配一个整数大小的内存空间,并将其初始化为42
int* arr = new int[5]; // 分配一个包含5个整数的数组
new
为自定义类型分配内存:class MyClass {
public:
MyClass() { /* 构造函数实现 */ }
};
MyClass* obj = new MyClass(); // 使用new为MyClass类型分配内存,并调用构造函数进行初始化
int* numPtr = new (std::nothrow) int; // 使用nothrow分配内存,如果分配失败,则返回nullptr
if (!numPtr) {
std::cout << "Memory allocation failed!"<< std::endl;
}
delete numPtr; // 释放单个对象的内存
delete[] arr; // 释放数组的内存
注意:在使用new
分配内存后,需要使用delete
(或delete[]
)来释放内存,以避免内存泄漏。同时,不要忘记检查new
操作符是否成功分配了内存。