C++中new的用途
时间: 2024-01-27 08:13:47 浏览: 80
C++中的new运算符主要用于动态内存分配,它可以在程序运行时动态地分配内存空间。new开辟的空间在堆上,可以在程序的任何地方使用,而不会因为函数调用结束而被释放。new的使用格式是:new 数据类型 或 new 数据类型[元素个数],new出来的是一段空间的首地址,因此需要用指针来存放这段地址。使用new运算符动态分配内存后,需要使用delete运算符释放内存,以免造成内存泄漏。
以下是new运算符的几种用途:
1. 动态分配单个对象的内存空间
```c++
int *p = new int; // 动态分配一个int类型的空间
*p = 10; // 给动态分配的空间赋值
delete p; // 释放动态分配的空间
```
2. 动态分配数组的内存空间
```c++
int *p = new int[5]; // 动态分配一个包含5个int类型元素的数组
for (int i = 0; i < 5; i++) {
p[i] = i + 1; // 给动态分配的数组赋值
}
delete[] p; // 释放动态分配的数组空间
```
3. 动态分配对象的内存空间
```c++
class A {
public:
A() { cout << "A constructor" << endl; }
~A() { cout << "A destructor" << endl; }
};
A *p = new A; // 动态分配一个A类型的对象
delete p; // 释放动态分配的对象空间
```
阅读全文