std::string 的 c_str() 如何发挥 return 空终止字符串的作用?

How does std::string's c_str() function return null-terminating string?

我不明白如果从 string.c_str() 返回的 char * 指向同一个缓冲区(并且不制作任何副本)它是如何以空终止的?该函数是否在字符串末尾添加空终止符?如果缓冲区没有任何额外的字节来存储它会发生什么?

谢谢。

自 C++11 起,字符串在内部以 null 结尾,并且 both c_str() and data() return the same thing.