c++ - std::string 的 c_str() 函数如何返回空终止字符串?
问题描述
我无法理解从 string.c_str() 返回的 char * 是否指向同一个缓冲区(并且不进行任何复制)它是如何以空值终止的?该函数是否在字符串末尾添加空终止符?如果缓冲区没有任何额外的字节来存储它会发生什么?
谢谢。
解决方案
从 C++11 开始,字符串在内部以空值结尾,并且两者都c_str()
返回data()
相同的东西。
推荐阅读
- c++ - C++ Meyers Singleton 作为类成员
- clang - 如何从 OpenMP 源代码向控制台打印内容?
- c# - 实例化与 path.combine 相关的错误
- android - 当我使用 sqlite 数据库作为资产时,数据库仍然可以被另一个程序使用/查看吗?
- multithreading - 使用 Quarkus 启动工作线程的正确方法?
- c# - WPF - 使用 Backgroundworker 加载 Visio 文件
- registry - 如何在卸载时删除 Inno Setup 中的注册表项?
- c# - 可能在招摇文档中使用的 XML 标记/函数?
- rust - 理解 Rust 中的类型推断
- javascript - 如何使用 JavaScript/HTML/PHP 生成 .html 文件?