Tesla4o
@Tesla4o
Без пользы жизнь - безвременная смерть... В. Гете

Как правильно получить const char* из std::string?

Вопрос наверно очень простой, но я немного в замешательстве.
Есть простая функция std::string getString(). Внутри которой формируется локальная переменная std::string и возвращается из нее.
Она вызывается в коде очень часто и как правило вызывается в аргументах другой функции.
Например
void someFunction(getString())
Но someFunction принимает const char*
Как правильно передавать возвращаемое значение getString?
const std::string str = getString();
someFunction(str.c_str());

Или можно сразу вызвать у функции c_str()?
someFunction(getString().c_str());
Если вызвать у функции c_str в аргументах функции, не получится ли UB? Так как локальная переменная будет удалена после того как возврaщена из getString.
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Нет, переменная удалится после того, как закончится вызов someFunction()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы