delete表示释放堆内存,通常与malloc配对使用。
如下代码:
int *p = malloc(sizeof(int))// do something
delete p
上面代码片段先是申请了一块堆内存,在使用完的时候,记住需要将堆内存释放,释放方式就是使用delete。否则会发生内存泄漏。
关于堆内存和栈内存区别,题主可以查阅相关书籍
delete()并不是C语言的库函数delete()在c++中经常用到,但是其实它本身和new对应,并不是函数,而是关键词
在这里,和
sizeof
类似,new
和
delete
也不是函数,它们都是
C++
定义的关键字,通过特定的语法可以组成表达式。和
sizeof
不同的是,sizeof
在编译时候就可以确定其返回值,new
和
delete
背后的机制则比较复杂。
delete
就做了两件事情:
调用
指向对象的析构函数,对打开的文件进行关闭。
通过标准库函数
operator
delete
来释放该对象的内存,传入函数的参数为
对象
的值。
与new/delete不同,malloc()/free()才是标准库函数