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.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Нет, переменная удалится после того, как закончится вызов someFunction()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы