c++ - 定长char数组用短字符串初始化时,剩余空间如何初始化?

标签 c++ initialization c++14

    char s[10] = "Test";

剩余的字符(在“测试”和终止 null 之后)是如何初始化的? (定义了吗?)

背景

我这样做是为了将自定义的固定宽度(并忽略) header 写入 STL file .但我不希望在剩余空间中有随机/未初始化的字节。

最佳答案

对于不是所有成员都被显式初始化的任何数组(或结构)的一般规则是,其余的被初始化“就好像它们具有静态存储持续时间”。这意味着它们被设置为零。

所以它实际上可以很好地编写像这样的奇怪的东西:char s[10] = {'T','e','s','t'};。由于剩余字节设置为零,因此第一个字节将被视为空终止符。

关于c++ - 定长char数组用短字符串初始化时,剩余空间如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66816335/

相关文章:

c++ - 成员属性的 std::function 模板参数推导

c++ - 使用大括号括起来的初始化列表初始化一个类

c++ - 包扩展不在最后一个参数中的可变参数函数模板

c++ string += 是如何实现的?

c++ - dlib 对象检测在 iOS 上始终返回零结果

c++ - Automake AM_LDADD 解决方法

perl - Perl何时自动初始化变量?

c++ - std::result_of 参数类型

java - 如何让Hibernate创建数据库SQL脚本进行初始化和更新

函数调用或构造函数调用中的 C++ 数组初始化