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

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

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 21:17
5000 руб./за проект
28 мар. 2024, в 20:46
150000 руб./за проект
28 мар. 2024, в 20:37
50000 руб./за проект