看下面的 C++ 代码:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
class Buf
{
public:
Buf(size_t size)
{
_storage.reserve(size);
}
~Buf()
{
vector<int> temp;
_storage.swap( temp );//release memory
}
vector<int> _storage;
};
int main()
{
int i = 0;
while( ++i < 10000)
{
Buf *buf = new Buf(100000);
delete buf;
}
return 0;
}
我在调试模式下运行它(VS2008):当我在行中设置断点时
//main function
int i = 0;
我发现进程MyProgram.exe在Windows任务管理器中占用了大约300KB内存。当我在该行设置断点时
return 0;
Process MyProgram.exe 在 Windows 任务管理器中占用大约 700KB。
我的问题是:为什么程序占用的内存增加了?我想我已经释放了内存~为什么?