宿題のstd::stringに似た文字列クラスを書いていますが、メモリリークを引き起こさず、メモリリークが発生しないまで同じままであることが保証されているc文字列を返す方法がわかりません。長く使用されています。私は現在持っています:
const char* string::c_str()
{
char c[_size+1];
strncpy(c,_data,_size);
c[_size]='\0';
return c;
}
ただし、呼び出された直後に内容が上書きされます。動的割り当てを行うと、メモリリークが発生するか、特定の文字列から常に1つのc文字列しか存在できなくなります。どうすればこれを回避できますか?