在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
操作符是否成功分配了内存。