Как функция std::string c_str() возвращает завершающуюся нулем строку?

Я не могу понять, если char *, возвращенный из string.c_str(), указывает на тот же буфер (и не делает никакой копии), как это завершается нулем? функция добавляет нулевой терминатор в конце строки? и что будет, если в буфере нет лишних байтов для его хранения?

Благодарю.

1 ответ

Начиная с C++11 строки завершаются нулем внутри, и оба c_str() а также data() вернуть то же самое.

Другие вопросы по тегам