Извиняюсь, поскольку я знаю, что похожие вопросы существуют, но я все еще не совсем ясен. Безопасно ли следующее?
void copyStr(const char* s)
{
strcpy(otherVar, s);
}
std::string getStr()
{
return "foo";
}
main()
{
copyStr(getStr().c_str());
}
Временный std::string будет хранить возврат от getStr(), но будет ли он жить достаточно долго, чтобы я мог скопировать его C-строку в другое место? Или я должен явно сохранить для него переменную, например
std::string temp = getStr();
copyStr(temp.c_str());