#include <iostream>
#include <memory>
#include <windows.h>
using namespace std;
void cmem()
{
while(1)
{
double *p = new double[1024*1024*10];
sleep(1000);
delete p;//释放,会引起内存跳舞
}
}
//智能指针,内存泄漏,自动管理
void autoptr()
{
while(1)
{
double *p ( new double[1024*1024*10]);
auto_ptr<double> smatr_ptr(p);//接管,自动回收,不会存在内存跳舞的情况
sleep(1000);
unique_ptr<double> ptr(new double[1024*1024]);
}
}
int main()
{
void autoptr()
cmem();
cout << "Hello World";
return 0;
}
由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最