C++中的删除运算符
时间:2020-02-23 14:29:56 来源:igfitidea点击:
在本文中,我们将了解C++中delete运算符的必要性和用法。
C++ delete()函数入门
C++语言是一种面向对象的语言,具有在运行时创建对象和操作数据变量的功能。
也就是说,它们可以动态轻松地创建和删除对象。
C++中的delete运算符用于删除数组,对象,指针等。
new运算符将动态内存分配给对象或者数据变量。
为了删除分配的内存,我们使用delete运算符。
语法:
delete object/array/pointer;
delete运算符从堆结构中删除并因此分配了分配的内存。
现在我们已经了解了删除运算符的工作原理和需求,现在让我们了解删除运算符在实际编程场景中的应用。
变体1:使用删除运算符删除空指针
delete运算符可用于有效地释放void指针
变量占用的存储空间。
例:
#include <bits/stdc++.h> using namespace std; int main() { void* str; cout<<"Deleting void pointer.."<<endl; delete str; return 0; }
输出:
Deleting void pointer..
变体2:通过delete()函数删除动态分配的内存
可以使用delete运算符删除通过使用malloc()函数对指针变量动态分配的内存。
例:
#include <bits/stdc++.h> using namespace std; int main() { char* str = (char*)malloc(sizeof(char)); cout<<"Deleting pointer memory allocated dynamically.."<<endl; delete str; return 0; }
输出:
Deleting pointer memory allocated dynamically..
变体3:使用delete()函数删除指针
在指针的删除操作期间,指向对象或者变量的指针不会被删除。
因此,删除操作符将删除指针指向内存中的内存空间。
示例1:使用delete运算符删除NULL指针
#include <bits/stdc++.h> using namespace std; int main() { int* str = NULL; cout<<"Deleting a NULL pointer.."<<endl; delete str; return 0; }
在上面的示例中,我们销毁了NULL指针变量占用的内存。
输出:
Deleting a NULL pointer..
示例2:删除指向特定值的指针变量点
#include <bits/stdc++.h> using namespace std; int main() { int* str = new int(100); cout<<"Value before deletion of pointer:"<<*str<<endl; cout<<"Deleting pointer.."<<endl; delete str; return 0; }
在上面的代码片段中,我们使用了delete运算符来释放由保存数据值的指针变量占用的内存空间。
在此,从指针变量占用的空间中清除数据值。
输出:
Value before deletion of pointer:100 Deleting pointer..
变体4:通过delete()函数删除数组对象
可以使用delele []运算符
有效地删除C++中的数组对象。
例:
#include <bits/stdc++.h> using namespace std; int main() { int* str = new int[100]; cout<<"Deleting array.."<<endl; delete[] str; return 0; }
输出:
Deleting array..
总结
删除运算符将分配数据变量,数组或者指针占用的内存空间。
而且,它不会破坏指针,而是会删除指针使用的内存空间。
delete []运算符
删除数组对象占用的空间。