在C++中,new 是一个用于动态分配内存的运算符。它用于在程序运行时从堆(Heap)中分配一块指定大小的内存,并返回该内存的地址。使用 new 运算符可以创建动态对象,即在程序运行时动态地分配内存空间。
new 运算符的基本语法如下:
cpp
Copy code
new 类型名;
new 类型名[数组大小];
其中,类型名 表示要分配的内存块的数据类型,可以是内置类型(如 int、double 等)或自定义类型(如类、结构体等)。如果要分配的是数组,则需要在 类型名 后面用方括号指定数组的大小。
使用 new 运算符分配内存后,会调用相应类型的构造函数来初始化对象(或元素),并返回指向该对象(或数组)的指针。
以下是一些 new 运算符的用法示例:
cpp
Copy code
int* p = new int; // 动态分配一个 int 类型的对象
double* arr = new double[10]; // 动态分配一个包含 10 个 double 类型元素的数组
需要注意的是,使用 new 运算符分配的内存需要手动释放,以防止内存泄漏。对应的释放内存的运算符是 delete。
例如,释放上述示例中分配的内存的方式如下:
cpp
Copy code
delete p; // 释放 p 所指向的对象的内存
delete[] arr; // 释放 arr 所指向的数组的内存
总之,new 运算符在C++中用于动态分配内存,并将返回的指针用于创建动态对象或数组。要记得在不再需要动态分配的内存时手动释放它们,以避免内存泄漏。