C ++ Valgrind错误条件跳转或移动取决于未初始化的值

时间:2015-07-23 13:09:25

标签: c++ valgrind memcheck

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

0 个答案:

没有答案