我正在为家庭作业编写一个类似于 std::string 的字符串类,但我无法弄清楚如何返回一个不会导致内存泄漏并保证保持不变的 c 字符串,直到它没有使用时间更长。我目前有:
const char* string::c_str()
{
char c[_size+1];
strncpy(c,_data,_size);
c[_size]='\0';
return c;
}
但内容在调用后不久就会被覆盖。如果我进行动态分配,我会出现内存泄漏,或者在任何时候给定字符串中只能存在一个 c 字符串。我怎样才能避免这种情况?