我正在一个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/