Получение утечки памяти. valgrind
говорит, что это может быть где-то здесь. Любая помощь могла бы быть полезна. Где-то, возможно, вокруг enter relevant sort
.... where algorithm is one of bubble, sort2, or sort 3
Получение «возможно потерянной» утечки памяти
void usageAbort(string progname, string message)
{
cerr << message << endl
<< "Usage: " << progname << " algorithm" << endl
<< " where algorithm is one of "
<< "bubble, sort2, or sort3"
<< endl;
exit(1);
}
/***************************************************************************/
/** **/
/***************************************************************************/
string algorithmFromCommandLine(int argc, char *argv[])
{
string program = argv[0];
string algorithm = argv[1];
if(argc!=2){
usageAbort(program, "enter proper argument count");
}
if((algorithm == "bubblesort") or (algorithm == "quicksort") or
(algorithm== "insertionsort")){
return algorithm;
}
else{
usageAbort(program,"enter relevant sort");
}
return 0;
}
Есть ли какие-то статические указатели где-то в вашем коде? Я не вижу в этом фрагменте кода memleak. –
Работает ли изменение параметров 'usageAbort()' на 'const char *'? Я не вижу необходимости использовать строку там. Я думаю, valgrid предположил, что возможна утечка, потому что память в temp 'string' (в параметре) не имеет шансов быть правильно освобождена (поскольку вы используете' exit() 'в методе) –
Valgrind часто показывает некоторые" Память. Способ протестировать легко - создать программу с базовыми библиотеками, включенными и с пустой основной. Скомпилируйте его -> запустите его с valgrind, и вы можете видеть, сколько свободной памяти вы можете иметь, не чувствуя себя плохо об этом :) – tomascapek