7
什么是std :: string :: c_str()寿命?
在我的一个程序中,我必须与可以使用的一些旧代码交互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 …