Computer >> Máy Tính >  >> Lập trình >> C ++

toán tử mới và xóa trong C ++

Toán tử mới

Toán tử mới yêu cầu cấp phát bộ nhớ trong heap. Nếu có đủ bộ nhớ, nó sẽ khởi tạo bộ nhớ cho biến con trỏ và trả về địa chỉ của nó.

Đây là cú pháp của toán tử mới trong ngôn ngữ C ++,

pointer_variable = new datatype;

Đây là cú pháp để khởi tạo bộ nhớ,

pointer_variable = new datatype(value);

Đây là cú pháp để cấp phát một khối bộ nhớ,

pointer_variable = new datatype[size];

Đây là một ví dụ về toán tử mới trong ngôn ngữ C ++,

Ví dụ

#include <iostream>
using namespace std;
int main () {
   int *ptr1 = NULL;
   ptr1 = new int;
   float *ptr2 = new float(223.324);
   int *ptr3 = new int[28];
   *ptr1 = 28;
   cout << "Value of pointer variable 1 : " << *ptr1 << endl;
   cout << "Value of pointer variable 2 : " << *ptr2 << endl;
   if (!ptr3)
   cout << "Allocation of memory failed\n";
   else {
      for (int i = 10; i < 15; i++)
      ptr3[i] = i+1;
      cout << "Value of store in block of memory: ";
      for (int i = 10; i < 15; i++)
      cout << ptr3[i] << " ";
   }
   return 0;
}

Đầu ra

Value of pointer variable 1 : 28
Value of pointer variable 2 : 223.324
Value of store in block of memory: 11 12 13 14 15

Toán tử xóa

Toán tử xóa được sử dụng để phân bổ bộ nhớ. Người dùng có đặc quyền để phân bổ biến con trỏ được tạo bởi toán tử xóa này.

Đây là cú pháp của toán tử xóa trong ngôn ngữ C ++,

delete pointer_variable;

Đây là cú pháp để xóa khối bộ nhớ được cấp phát,

delete[ ] pointer_variable;

Đây là một ví dụ về toán tử xóa trong ngôn ngữ C ++,

Ví dụ

#include <iostream>
using namespace std;
int main () {
   int *ptr1 = NULL;
   ptr1 = new int;
   float *ptr2 = new float(299.121);
   int *ptr3 = new int[28];
   *ptr1 = 28;
   cout << "Value of pointer variable 1 : " << *ptr1 << endl;
   cout << "Value of pointer variable 2 : " << *ptr2 << endl;
   if (!ptr3)
   cout << "Allocation of memory failed\n";
   else {
      for (int i = 10; i < 15; i++)
      ptr3[i] = i+1;
      cout << "Value of store in block of memory: ";
      for (int i = 10; i < 15; i++)
      cout << ptr3[i] << " ";
   }
   delete ptr1;
   delete ptr2;
   delete[] ptr3;
   return 0;
}

Đầu ra

Value of pointer variable 1 : 28
Value of pointer variable 2 : 299.121
Value of store in block of memory: 11 12 13 14 15