使用new运算符表示请求在堆上分配内存。如果有足够的内存可用,它将初始化内存并将其地址返回给指针变量。
仅当数据对象应保留在内存中直到调用delete时,才应使用new运算符。否则,如果不使用new运算符,则超出范围时将自动销毁该对象。换句话说,使用new的对象将被手动清理,而其他对象超出范围时将被自动清理。
以下是new运算符的语法。
pointer_variable = new datatype;
在上面的语法中,pointer_variable是指针变量,该指针变量将向其返回内存地址,而datatype是该内存的内置数据类型。
给出了一个演示使用new运算符的程序,如下所示。
#include <iostream> using namespace std; int main () { int *ptr1 = NULL; ptr1 = new int; float *ptr2 = new float(223.324); *ptr1 = 28; cout << "Value of pointer variable 1 : " << *ptr1 << endl; cout << "Value of pointer variable 2 : " << *ptr2 << endl; delete ptr1; delete ptr2; return 0; }
输出结果
上面程序的输出如下。
Value of pointer variable 1 : 28 Value of pointer variable 2 : 223.324
现在让我们了解上面的程序。
new运算符用于初始化内存并将其地址返回到指针变量ptr1和ptr2。然后显示存储在由ptr1和ptr2指向的存储位置中的值。最后,使用delete运算符释放内存。
显示此的代码段如下-
int *ptr1 = NULL; ptr1 = new int; float *ptr2 = new float(223.324); *ptr1 = 28; cout << "Value of pointer variable 1 : " << *ptr1 << endl; cout << "Value of pointer variable 2 : " << *ptr2 << endl; delete ptr1; delete ptr2;