我正在尝试了解 delete 如何清除为对象分配的内存。 谁能解释清楚吗?
我正在做这样的事情:
class MyClass{
public :
MyClass() {std::cout <<" constructed\n";}
~MyClass() {std::cout <<" destroyed\n";}
};
int main ()
{
MyClass * pt=NULL;
pt = new MyClass();
delete pt;
if ( pt == NULL )
std::cout<<"deallocated\n";
}
最佳答案
delete pt
将调用析构函数 ~MyClass()
,然后释放对象占用的所有内存*pt
回到操作系统。
它不做的是改变指针的值,因为那是不必要的。
有些程序员会在 delete
之后设置 pt = nullptr
,因为 C++ 标准保证 delete nullptr
是空操作。所以它可以帮助程序稳定。
关于c++ - delete命令会清除new分配的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29651045/