哈尔滨网站建设如何,广西地矿建设集团有限公司网站,中信建设有限责任公司 乔锋 电话,wordpress系统语言设置案例 有时候代码很长#xff0c;很容易就忘了释放P。导致内存泄露#xff0c;在程序结束后才会释放。内存泄露的风险
如果代码需要的内存很大#xff0c;前面的代码用完了new申请的内容不去释放#xff0c;就会被一直占用着#xff0c;后面可能不够用了造成程序崩溃。解决…案例 有时候代码很长很容易就忘了释放P。导致内存泄露在程序结束后才会释放。内存泄露的风险
如果代码需要的内存很大前面的代码用完了new申请的内容不去释放就会被一直占用着后面可能不够用了造成程序崩溃。解决方法
定义一个局部对象放在test01函数中在它的析构函数中释放P。
因此test01函数运行结束将释放该对象就释放了p#include iostream
using namespace std;class person
{
public:person(int age){this-age age;}int age;};class Smartpointer
{
public:Smartpointer(person *p1){this-p p1;}person* p;// 重载该类的 - 操作符person *operator-(){return p;}~Smartpointer(){delete p;cout释放了pendl;}
};void test01()
{person* p new person(10000);Smartpointer sp(p);coutsp-ageendl;// coutsp.p-ageendl;// delete p;
}int main()
{test01();return 0;
}