我的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;
}