将 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 草案 N3376 §21.4.2 的表 67。
是的。构造std::string
函数复制传递给它的字符串。
请参阅此页面上的构造函数 #4 。
string (const char* s); // from c-string
来自 c 字符串
复制 s 指向的以 null 结尾的字符序列(C 字符串)。