删除分配给对象的所有内存

时间:2014-03-28 01:08:33

标签: c++ oop memory-leaks

我正在编写一个程序,它创建了我从其他人的代码中借用的数千个类的实例。例如,我有一个班级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。该类比这个例子更复杂,所以我在调试该类之前考虑了这个选项。

2 个答案:

答案 0 :(得分:4)

不,没有。你必须解决这个问题。

答案 1 :(得分:1)

也许B类从其他类继承并且析构函数不是虚拟的。你能看看吗?

编辑:

要检查泄漏,我建议安装 valgrind (软件)。

如何安装?在ubuntu中, sudo apt-get install valgrind

如何使用它?只需用它启动你的程序: valgrind ./yourProgram

如何使用它进行泄漏检测? valgrind --leak-check = yes ./yourProgram

Here是指南