当我将char* string赋值给std::string时,可以释放它的内存吗?



在我将char*指向的字符串转换为std::string后,我可以释放该字符串的内存吗?例如:

char* c_string;
c_string = strdup("This is a test");
std::string cpp_string;
cpp_string(c_string);
free(c_string); /* can I call free here? */

是。std::string复制底层C字符串。

来源:c++ 11 draft N3376 §21.4.2的表67

是。std::string构造函数复制传递给它的字符串。

参见本页构造函数#4。

string (const char* s);    // from c-string
从c字符串

复制s指向的以空结尾的字符序列(C-string)。

相关内容

  • 没有找到相关文章

最新更新