Я пытаюсь реализовать функцию c_str() моего собственного класса String. Это похоже на работу, но по какой-то причине он печатает «=» в конце каждой строки:c_str() пользовательская реализация/"=" в конце каждой строки
const char* c_str()
{
char* temp = alloc.allocate(data.size() + 1);
uninitialized_copy(data.begin(), data.end(), temp);
temp[data.size()+1] = '\0';
return temp;
}
Частной части класса Str:
private:
Vec<char> data;
allocator<char> alloc;
* Vec является в основном вектором.
int main()
{
Str s1 = "Hello, beee";
cout << s1.c_str();
return 0;
}
Где я ошибаюсь?
Правильно, я этого не замечал. Спасибо – trollpidor
Это не значит, что он * может * привести к неопределенному поведению. Это * * приводит к неопределенному поведению. Сегодня для Trollpidor неопределенное поведение проявляется довольно мягко, как знаки равенства на концах всех строк. Завтра он может проявиться как носовые демоны. Вот что значит быть неопределенным. –