内存泄露
动静申请堆空间,用完后不偿还
C++ 语言中没有垃圾回收机制
指针无法控制所指堆空间的生命周期
例:内存泄露
#include <iostream>
#include <string>
using namespace std;
class Test
{
int i;
public:
Test(int i)
{this->i = i;}
int value()
{return i;}
~Test()
{}};
int main()
{for(int i = 0;i<5;i++)
{Test* p = new Test(i);
cout << p->value() <<endl;}
return 0;
}
输入:
0
1
2
3
4
深度的思考:
须要一个非凡的指针
指针的生命周期完结时被动开释堆空间
一片堆空间最多只能由一个指针标识
杜绝指针运算和指针比拟
例:
智能指针: