内存释放的问题?
程序如下
cout << "------------After 5Seconds start-------------" << endl;
sleep(5);
cout << "------------create Packet start-------------" << endl;
list<char*> charList;
for (int i = 0; i<1000000; i++) {
char* xx = new char[1024];
if (i%200000 == 0) {
cout << "------Now create-------" <<i << endl;
sleep(2);
}
charList.push_back(xx);
}
cout << "------------create Packet finish-------------" << endl;
sleep(20);
cout << "------------delete Packet start-------------" << endl;
list<char*>::iterator it = charList.begin();
int n = 0;
while (it != charList.end()) {
n ++;
delete[] *it;
it ++;
}
cout << "------------delete Packet finish-------------" << n << endl;
sleep(20);
cout << "------------exit-------------" << endl;
执行前内存如下
Mem: 1034420k total, 69592k used, 964828k free, 4264k buffers
Swap: 2031608k total, 56184k used, 1975424k free, 31312k cached
打印完"------------create Packet finish-------------"
之后内存如下
Mem: 1034420k total, 1011132k used, 23288k free, 188k buffers
Swap: 2031608k total, 117024k used, 1914584k free, 11960k cached
打印完 "------------delete Packet finish-------------"
之后内存如下
Mem: 1034420k total, 1018364k used, 16056k free, 92k buffers
Swap: 2031608k total, 633204k used, 1398404k free, 9544k cached
可以说内存根本就没被释放掉,不知道为什么,
请高人指点!谢谢!