【发布时间】:2013-06-25 19:16:41
【问题描述】:
我正在尝试了解 C++ 中的内存管理。
这是我的代码:
Person *P5 = new Person();
delete P5;
std::cout<<P5->getWeight()<<std::endl;
delete P5;
std::cout<<P5->getWeight()<<std::endl;
我的第一个 cout 有效,第二个无效,因为我之前都使用了 delete。谁能解释一下?
【问题讨论】:
-
您可能遇到了未定义的行为
-
你的最后三行调用了 UB。
-
删除后为什么要打印出来
-
这很简单。如果您告诉操作系统您不再使用内存,那么您就不要使用它。无论如何,你不能保证任何事情。
标签: c++ memory-management