Я пишу строковый класс, похожий на строку std ::для домашнего задания, но я не могу понять, как вернуть строку c -, которая не вызывает утечки памяти и гарантированно останется неизменной до тех пор, пока она больше не используется. У меня сейчас:
const char* string::c_str()
{
char c[_size+1];
strncpy(c,_data,_size);
c[_size]='\0';
return c;
}
но содержимое переопределяется вскоре после его вызова. Если я выполню динамическое выделение, у меня будет либо утечка памяти, либо только одна строка c -может существовать из заданной строки в любой момент времени. Как я могу этого избежать?