std::string に変換した後、char* で指定された文字列のメモリを解放できますか? 例えば:
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 が指すヌル終了文字シーケンス (C 文字列) をコピーします。