7
std :: string :: c_str()ライフタイムとは何ですか?
私のプログラムの1つでは、で動作するいくつかのレガシーコードとやり取りする必要がありconst char*ます。 私が次のような構造を持っているとしましょう: struct Foo { const char* server; const char* name; }; 私の上位レベルのアプリケーションはのみを扱うstd::stringため、ポインターstd::string::c_str()を取得するためにを使用することを考えましたconst char*。 しかし、寿命はどのくらいですc_str()か? 未定義の動作に直面することなく、このようなことを行うことはできますか? { std::string server = "my_server"; std::string name = "my_name"; Foo foo; foo.server = server.c_str(); foo.name = name.c_str(); // We use foo use_foo(foo); // Foo is about to be destroyed, before name and server …