我怎样才能在c ++中复制一个std :: string*?
我想做那样的事情:
std::string *str1 = new std::string("test");
std::string *str2 = strdup(str1);
delete str1;
std::cout << *str2 << std::endl; // result = "test"
Run Code Online (Sandbox Code Playgroud)
jua*_*nza 24
如果你真的必须使用指针和动态分配(很可能不是),那么
std::string *str2 = new std::string(*str1);
Run Code Online (Sandbox Code Playgroud)
在真实生活中,
std::string str1 = "test";
std::string str2 = str1;
Run Code Online (Sandbox Code Playgroud)
我很确定您不应该在这里使用指针。使用指针会强制您管理生存期,防止出现异常情况等。一个不必要的痛苦世界。
您应该编写的代码是:
std::string str1 = "test";
std::string str2 = str1;
Run Code Online (Sandbox Code Playgroud)