У меня проблема с моим кодом C ++, так как valgrind дает мне ошибку (условный переход или перемещение зависит от неинициализированных значений) в строках, выделенных ниже. Я пробовал инициализироватьтип«с пустой строкой, но, похоже, не работает.
Любая помощь здесь высоко ценится.
Спасибо заранее.
nandanator
int AB_CD::checkType(string & str)
{
int tmp = 0;
string type;while (getNextSubstring(str, type))
{
if (type == "AAA") <<<<< ----- Valgrind error pointing here
{
tmp |= static_cast<int>(TYPE_AAA);
}
else if (type == "BBB") <<<<< ----- Valgrind error pointing here
{
tmp |= static_cast<int>(TYPE_BBB);
}
else if (type == "CCC") <<<<< ----- Valgrind error pointing here
{
tmp |= static_cast<int>(TYPE_CCC);
}
else
{
//Print a warning
}
}
return tmp;
}bool AB_CD::getNextSubstring(string & input, string & substring)
{
bool found_substring = false;
string::size_type start = input.find_first_not_of(" ,");
string::size_type end = input.find_first_of(" ,", start);
if (start != string::npos)
{
substring = input.substr(start, end-start);
input.erase(start, end-start);
found_substring = true;
}
return found_substring;
}
Задача ещё не решена.