我正在编写一个程序,它创建了我从其他人的代码中借用的数千个类的实例。例如,我有一个班级B
,
class B {
B(int a);
int some_function();
...
};
在我的程序中,我创建了这个类的对象:
int main() {
for(int i=0; i<10000; i++) {
B *b = new B(i);
b->some_function();
delete(b);
}
}
但是类B
有内存泄漏并在几次迭代后填充我的RAM。有没有办法在我的程序每次迭代后删除分配给这个类的所有内存?
P.S。该类比这个例子更复杂,所以我在调试该类之前考虑了这个选项。
答案 0 :(得分:4)
不,没有。你必须解决这个问题。
答案 1 :(得分:1)
也许B类从其他类继承并且析构函数不是虚拟的。你能看看吗?
编辑:
要检查泄漏,我建议安装 valgrind (软件)。
如何安装?在ubuntu中, sudo apt-get install valgrind
如何使用它?只需用它启动你的程序: valgrind ./yourProgram
如何使用它进行泄漏检测? valgrind --leak-check = yes ./yourProgram
Here是指南