В С++ 11 basic_string::c_str
определяется как точно такое же, как basic_string::data
, которое, в свою очередь, определяется как то же самое, что *(begin() + n)
и *(&*begin() + n)
(когда 0 <= n < size()
).
Я не могу найти ничего, что требует, чтобы строка всегда имела нулевой символ в конце.
Означает ли это, что c_str()
больше не гарантирует получение строки с нулевым завершением?