C++ Delete 运算符

17 Mar 2025 | 5 分钟阅读

delete 运算符用于在 C++ 语言程序运行时释放使用 new 运算符、calloc 和 malloc() 函数等动态创建的内存空间。换句话说,delete 运算符用于从堆中释放数组和非数组(指针)对象,这些对象是由 new 运算符动态分配以将变量放入堆内存的。我们可以在程序中使用 delete 运算符或 delete [ ] 运算符来删除已释放的空间。delete 运算符具有 void 返回类型,因此它不返回值。

Delete Operator in C++

delete 运算符的语法

我们可以使用 delete 运算符删除特定的元素或变量,如下所示

同样,我们可以使用 delete [] 运算符删除已分配的内存块。

使用 delete 运算符释放每个变量内存位置的程序

我们来看一个例子,使用 delete 运算符从堆内存中删除每个变量已分配的内存空间。

Program1.cpp

输出

Enter first number: 5
 Enter second number: 8
 Sum of pointer variables = 13 

使用 delete [] 运算符删除数组对象的程序

让我们创建一个程序,使用 C++ 中的 delete [] 运算符删除为数组对象动态创建的内存空间。

Program2.cpp

输出

Enter total number of elements to be entered : 7
 Enter the numbers:
 Number 1 is 45
 Number 2 is 600
 Number 3 is 78
 Number 4 is 93
 Number 5 is 29
 Number 6 is 128
 Number 7 is 32
 Numbers are : 45       600     78      93      29      128     32

使用 delete 运算符删除空指针的程序

让我们考虑一个使用 C++ 编程语言中的 delete 运算符删除空指针的程序。

Program3.cpp

输出

The NULL pointer is deleted.

使用 delete 运算符删除带值或不带值的指针

让我们考虑一个使用 C++ 中的 delete 运算符删除带值或不带值的指针变量的示例。

Program4.cpp

输出

The value of ptr is: 1415071048
  The value of ptr2 is: 10

使用 malloc 函数分配动态内存,然后使用 delete 运算符删除的程序

让我们考虑一个使用 malloc 函数创建动态内存,然后使用 delete 运算符删除 C++ 编程语言中已分配内存的示例。

Program6.cpp

输出

Dynamic memory is deleted using the delete operator.

删除用户定义数据类型变量的程序

让我们编写一个程序来演示使用 delete 运算符删除用户定义对象。

Program7.cpp

输出

Custom deletion of size 1
 Custom deletion of size 24

使用 delete 运算符删除 void 指针的程序

让我们创建一个程序,使用 C++ 中的 delete 运算符释放 void 指针的内存空间。

Program8.cpp

输出

The void pointer is deleted using the delete operator.