【发布时间】:2019-12-15 22:41:39
【问题描述】:
我初始化scip环境如下:
SCIP* scip = nullptr;
SCIP_CALL( SCIPcreate(&scip) );
我创建了一个小问题来学习 SCIP,我将解决方案存储在
SCIP_SOL* sol = nullptr;
sol = SCIPgetBestSol(scip);
我正在尝试通过sol 和scip 释放内存,但我遇到了分段错误。
这会导致段错误:
SCIP_RETCODE retcode = SCIPfreeSol(scip,&sol);
assert(retcode == SCIP_OKAY);
retcode = SCIPfree(&scip);
assert(retcode == SCIP_OKAY);
如果我在释放scip 之前没有释放sol,它可以正常工作并且不会发生段错误,但我确信它不正确。我检查了 SCIP 优化套件附带的一些其他代码,一些代码示例使用 SCIPfreeSol 而有些则没有,即使它们都使用 SCIP_SOL *sol 来定义 sol 变量。
编辑:这个问题确实有效。我没有包含实际的模型代码。
【问题讨论】: