私のプログラムの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
}または私はすぐc_str()に別の場所に結果をコピーすることになっていますか?
ありがとうございました。
.c_str()。時々私は、文字列の部分だけを取得し、なぜ私がいることを理解するまで、私は、理解していなかったconst char*永遠に住んでいないが、文字列が破壊されるまで