Как функция std::string c_str() возвращает завершающуюся нулем строку?
Я не могу понять, если char *, возвращенный из string.c_str(), указывает на тот же буфер (и не делает никакой копии), как это завершается нулем? функция добавляет нулевой терминатор в конце строки? и что будет, если в буфере нет лишних байтов для его хранения?
Благодарю.
1 ответ
Начиная с C++11 строки завершаются нулем внутри, и оба c_str()
а также data()
вернуть то же самое.