在我将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)。