Освобождая память

Я работаю над проектом 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);
}
}

Этот код пропускает около 80 миллионов байтов, с ровно 100 ошибками. Есть ли известная утечка в lpsolve или я выполняю очистку неправильно?

Спасибо

1

Решение

Оказывается, это была относительно простая ошибка, вызванная тем, что вы не внимательно читали документы, но я оставлю это здесь на случай, если кто-то еще сочтет это полезным.

Стандарт С ++ delete будут не свободная память, связанная с lprec. Используйте lpsolve’s delete_lp() (1) или же free_lp() (2) вместо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]