Zeb*_*ish -2 c++ memory heap pointers memory-leaks
我对内存泄漏非常谨慎,所以我认为我已经验证了这一点.在下面的例子中会出现内存泄漏吗?我的直觉是肯定的.
class Handler // Class definition
{public:
~Handler();
int* ptrToInts;
};
Handler::~Handler() // Class destructor
{
delete[] ptrToInts;
}
Handler handler; // Global object
void aFunction()
{
handler.ptrToInts = new int[20];
}
int main()
{
bool quit = false;
while(!quit)
{
aFunction();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在heapeach时间,ptrToInts会在单独的内存中创建20个单独的新int?
另外,另一个问题是,如果不是析构函数,是否会释放动态分配的内存?看到类的生命周期是程序的持续时间,它会清除所有"新"内存吗?
编辑:谢谢你的回答.我问这个的原因是因为我试图绕过调用new并删除WadProc每次基本上调用Raw Input,这就是MSDN告诉你这样做的方式.似乎非常低效.
只要重新分配指针而不使用delete[]在堆上取消分配已分配的内存,就会产生内存泄漏.如果你循环播放aFunction()它,就会在每次调用时重新分配指针.
至于你的第二个问题,你的析构函数将只delete[]分配给指针的最后一个数组.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |