JsonCpp выдает LogicError при выходе из функции

У меня есть этот кусок кода:

void foo()
{
    std::string r = curlcall();
    std::string error;
    Json::CharReaderBuilder *build = new Json::CharReaderBuilder();
    Json::CharReader *read = build->newCharReader();
    Json::Value *root = new Json::Value();

    std::cout << "parse\n";
    read->parse(&r.front(), &r.back() + 1, root, &error);
    std::cout << "loop\n";
    for(auto i : *root)
    {
        //code that pulls info from each i
    }
    std::cout << "delete\n";
    delete root;
    delete read;
    delete build;
    std::cout << "end\n" << error << "\n";
}

Когда я компилирую и запускаю эту программу, она выдает:

parse
loop
delete
end

Однако после этого вывода программа вылетает здесь с сообщением:

terminate called after throwing an instance of 'Json::LogicError'
      what():  in Json::Value::resolveReference(key, end): requires objectValue
    Aborted (core dumped)

После поиска в течение длительного времени до сих пор не могу найти, что вызывает это исключение, чтобы быть. Я не могу поймать ошибку с try/catch или.

1 ответ

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

Другие вопросы по тегам