আমার একটি প্রোগ্রামে আমাকে কিছু লিগ্যাসি কোড দিয়ে ইন্টারফেস করতে হবে যা এর সাথে কাজ করে 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*
চিরকাল বেঁচে নেই, তবে স্ট্রিংটি ধ্বংস না হওয়া অবধি