如何将char数组放入std :: string

itu*_*tun 4 c++ string std

我分配一个char数组然后我需要将它作为一个字符串返回,但我不想复制这个char数组然后释放它的内存.

        char* value = new char[required];
        f(name, required, value, NULL); // fill the array
        strResult->assign(value, required);
        delete [] value;
Run Code Online (Sandbox Code Playgroud)

我不想像上面那样做.我需要将数组放在std字符串容器中.我怎么能这样做?

EDIT1:

我明白我不应该并且字符串不是为此而设计的.MB有人知道char数组的另一个容器实现,我可以用它吗?

ild*_*arn 5

在C++ 11中,保证以下功能:

std::string strResult(required, '\0');
f(name, required, &strResult[0], NULL);

// optionally, to remove the extraneous trailing NUL (assuming f NUL-terminates):
strResult.pop_back();

return strResult;
Run Code Online (Sandbox Code Playgroud)

在C++ 03中,不能保证可以工作,但是大多数标准库实现多年来已经实现的库问题530解决了它,所以它可能是安全的,但最终是依赖于实现的.