我正在做一个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中是否存在已知的泄漏,或者我是否处理不正确的清理?
谢谢
发布于 2016-06-23 21:39:22
事实证明,这是一个相对简单的错误,是由于没有仔细阅读文档引起的,但我将把它留在这里,以防其他人发现它有帮助。
标准C++ delete不会释放与lprec相关的内存。改用lpsolve的delete_lp() (1)或free_lp() (2)。
https://stackoverflow.com/questions/37977953
复制相似问题