我正在一个C++项目中,该项目涉及使用lpsolve 5.5版来解决许多线性程序。我在内存泄漏方面遇到了麻烦。

我写了一些测试代码:

int main(){
  for(int i = 0; i < 100; i++){
    lprec* lp = make_lp(0, 5000);    //0 rows, 5000 columns
    set_verbose(lp, IMPORTANT);
    solve(lp);
    delete(lp);
  }
}

此代码泄漏大约8000万个字节,恰好有100个错误。 lpsolve中是否存在已知的泄漏,还是我处理不正确?

谢谢

最佳答案

事实证明,这是一个相对简单的错误,是由于未仔细阅读文档而导致的,但如果有人发现它对您有帮助,我将在此保留。

标准的C++ delete将不会释放与lprec相关联的内存。请改用lpsolve的delete_lp() (1)free_lp() (2)

关于c++ - 释放lpsolve内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37977953/

10-12 05:07