何时在C ++中使用new运算符,何时不应该使用它?

使用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;