|
|
发信人: zollow (小小侠客), 信区: LinuxDev
标 题: 有new没有delete的怪问题。
发信站: 水木社区 (Mon Aug 15 17:10:39 2005), 站内
我写了一个程序,其中:
....
class CVS{
public:
int *my_mem;
CVS(){
my_mem = new int[32700];
}
~CVS(){
delete []my_mem;
}
};
int main()
{
.....
CVS *p;
while(1)
{
p = new CVS[32700];
....
// delete []p;
}
.....
return 0;
}
我故意注释掉了delete那行,按我的理解, 程序应该不断地申请内存直到耗尽,
结果是我在用ps看的时候这个程序占用的内存基本不变,而且不久就出了错误:
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc
虔诚请教各位达人这是为什么,怎么不是像我想的那样呢?另外实际上内存还有一定的空间呢,为什么这时候就bad_alloc了? |
|