Можно ли динамически выделить временную переменную в C ++?
Я хочу сделать что-то подобное:
#include <iostream>
#include <string>
std::string* foo()
{
std::string ret("foo");
return new std::string(ret);
}
int main()
{
std::string *str = foo();
std::cout << *str << std::endl;
return 0;
}
Этот код работает, но проблема в том, что мне нужно создать другую строку, чтобы вернуть ее в качестве указателя. Есть ли способ поместить мою временную / локальную переменную в мою кучу без воссоздания другого объекта?
Вот иллюстрация того, как я это сделаю:
std::string* foo()
{
std::string ret("foo");
return new ret; // This code doesn't work, it is just an illustration
}