Ваши параметры:
Return std::string
Передайте буфер в returnCharPtr()
, который будет содержать новый буфер символов. Для этого нужно проверить, что предоставленный буфер достаточно велик для хранения строки.
Создайте новый char
массив внутри returnCharPtr()
, скопируйте буфер в новый и верните указатель на него. Это требует, чтобы вызывающий ящик явно вызывал delete []
на то, что они явно не создавали с помощью new
, или сразу же помещал его в класс интеллектуального указателя. Это решение было бы улучшено, если бы вы вернули умный указатель, но на самом деле имеет смысл возвращать std::string
напрямую.
Выберите первый; return std::string
. Это, безусловно, упрощенный и безопасный вариант.