Di salah satu program saya, saya harus berinteraksi dengan beberapa kode lama yang berfungsi const char*.
Katakanlah saya memiliki struktur yang terlihat seperti:
struct Foo
{
const char* server;
const char* name;
};
Aplikasi tingkat tinggi saya hanya berurusan dengan std::string, jadi saya berpikir untuk menggunakan std::string::c_str()untuk mendapatkan const char*petunjuk kembali .
Tapi untuk apa seumur hidup c_str()?
Bisakah saya melakukan sesuatu seperti ini tanpa menghadapi perilaku yang tidak ditentukan?
{
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
}
Atau apakah saya harus segera menyalin hasil dari c_str()ke tempat lain?
Terima kasih.
.c_str(). Saya tidak mengerti mengapa kadang-kadang saya hanya mendapatkan bagian dari string, sampai saya mengerti bahwaconst char*itu tidak hidup selamanya, tetapi sampai string itu hancur