Valgrind сообщает об ошибке для кода последующейValgrind: Использование инициализированы значения из станд :: строки :: назначить
void test(const std::vector<string> &strvec) {
string val;
if (strvec.size() > 0) {
val = strvec.front(); // use of uninitialized value of size 8
}
}
Извините, что я не могу отправить полный код, потому что это зависит от многих других вещей. Это всего лишь простой снимок кода.
Поскольку valgrind не сообщает никаких ошибок о размере(), проверьте, так что я думаю Я должен быть в состоянии получить его фронт. Но я не понимаю, почему он жалуется на доступ к неинициализированным ценностям.
Если вы используете [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), используя этот фрагмент, то valgrind все равно дает тот же результат? –
Несвязанный, я думаю 'if (! Strvec.empty()) {' является более идиоматической проверкой/тестом. –
Нам нужно увидеть, как определяется 'strvec' и его содержимое, как говорит @JamesAdkison. –