7

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? */
4

2 に答える 2

12

はい。std::string基になる C 文字列をコピーします。

出典: C++11 ドラフト N3376 の §21.4.2 の表 67。

于 2013-04-12T04:28:04.400 に答える
5

はい。std::stringコンストラクターは、渡された文字列のコピーを作成します。

このページのコンストラクタ #4 を参照してください。

string (const char* s);    // from c-string

C文字列から

s が指すヌル終了文字シーケンス (C 文字列) をコピーします。

于 2013-04-12T04:28:18.617 に答える