我正在关注Does C++ standard 保证将非静态聚合对象的填充字节初始化为零? 并试图强制GCC 和 Clang 用零初始化填充。 -ftrivial-auto-var-init=choice标志似乎可以解决问题,但我看不出是否使用它有什么区别原始代码在这里(不使用-ftrivial-a ...
我正在关注Does C++ standard 保证将非静态聚合对象的填充字节初始化为零? 并试图强制GCC 和 Clang 用零初始化填充。 -ftrivial-auto-var-init=choice标志似乎可以解决问题,但我看不出是否使用它有什么区别原始代码在这里(不使用-ftrivial-a ...
如果我有以下结构 我用 这应该值初始化对象并根据标准执行以下操作: 如果 T 是没有用户提供或删除的默认构造函数的(可能是 cv 限定的)类类型,则该对象被零初始化并检查默认初始化的语义约束,并且如果 T 具有非平凡的默认构造函数, 对象是默认初始化的; struct test有 ...
在下面的代码中,我希望使用 gargabe 初始化a的成员,因为在被调用的构造函数的成员初始化列表中没有提到它们(带有两个int参数)。 相反,我在a , b和c的i和j中不断得到0 ,我不明白为什么。 有人可以指出我正确的方向吗? ...
像这样的代码, 我知道全局或静态变量将初始化为零。 并且自动执行不确定的值。 但是堆对象使用new关键字,有什么参考解释吗? ...
我有一个二维 std 数组,例如 array<array<int, 9>, 9> tbl; 如何用-1等相同的值初始化它? 如果我只是希望它被零初始化,那么最好的方法是什么? ...
这是我的一项测试,我不明白为什么它会按预期工作。 这是一段代码,将s1的顺序颠倒过来,存储在s2中,然后打印出来。 在我看来,当 s1 向后存储时,s2 中的 null 字符将被覆盖,而且 s1 中的 null 字符永远不会被写入 s2,因为它是从最后一个字符开始的。 但它打印出来就好了。 为什么 ...
我正在为 C++ class 简介准备期末考试。 我们的教授给我们练习了这个问题: 解释为什么代码会产生以下 output: 120 200 16 0 该问题的示例答案是: cout 语句只是循环遍历其下标由 for 循环的增量定义的数组元素。 元素大小不是由数组初始化定义的。 for 循环定 ...
在 C++ 中用零初始化 int 数组的最快方法是什么? 或者 或者也许还有另一种方式? ...
当程序调用mmap分配一个匿名页,也称为零需求页时,对应的页表项 (PTE) 的地址字段中会出现什么? 我假设 kernel不会在物理 memory 中创建零初始化页面(并将该物理页面的页码输入 PTE),直到请求进程实际触及页面 - 因此术语需求零。 由于它不是磁盘地址,也不是 0(用于未分配的 ...
给定这个数组声明和初始化: 我可以假设数组中的所有元素都将始终初始化为 false,还是明确地这样做更好? ...
我已经实现了一个 function 来重置指针指向的结构的内容: 当Struct变大(超过 10K)时,我会遇到性能问题,因为Struct是在堆栈中创建的,然后分配给*s 。 我想知道我是否可以改进它: 是否可以在没有临时Struct{} object 的情况下直接初始化*s ? 我是否应该评估St ...
考虑到诸如https://stackoverflow.com/a/33668295中详述的考虑因素,似乎xor reg, reg是将寄存器归零的最佳方法。 但是当我检查实际的汇编代码(例如 Windows 引导加载程序代码,IIRC)时,我看到xor reg, reg和sub reg, reg都使 ...
在进行了大量测试并写下这个答案之后(注意:在我完全重写它之前,对它的否决票),我不明白为什么= {0}不会将结构的所有成员设置为零! 如果你这样做: ... output 是: ...虽然我预计output 是这样的: ...这意味着只有 FIRST 成员设置为零,所有 rest 都设置为默 ...
所以我希望代码运行一个程序: 你好! 我拉莫凯 而我今年 19 岁 你是谁? [用户输入任何内容] 你是[用户输入]? 但我得到的是: 你好! 我拉莫凯 而我今年 19 岁 你是谁? [用户输入任何内容] 你是0? 编辑:在此处输入图像描述 ...
下面是一个标记联合模板“存储”的精简示例,它可以假设两个类型 L 和 R 包含在一个联合中,加上一个布尔值,指示存储其中的哪一个。 实例化使用两种不同大小的类型,较小的一种实际上是空的。 构造函数用 Empty 初始化 R 成员,并且只调用该成员的联合构造函数 联合永远不会默认初始化为一个 ...
当我运行第一个程序时, nl (换行符)设置为 7ff,并打印出 129。 但是当我运行第二个程序时一切正常......我想。 第二个程序 顺便说一句,这是C 编程语言书中的练习 1-8 ...
有没有办法将具有可变大小的任何类型的数组归零? 所以我想要的是应用这样的东西: 到这样的模板: 当我尝试这样做时,我的编译器会说: 'results' declared as array of functions of type 'T ()' 。 当我使用任何固定类型名时,我收到此错误: V ...
根据 cppreference.com,不存在值的std::map::operator[]进行零初始化。 但是,同一个站点没有提到std::unordered_map::operator[]零初始化,除了它确实有一个依赖于此的示例。 当然,这只是一个参考站点,而不是标准。 那么,下面的代码好吗? ...
所以我读到零初始化将初始化: 每个具有静态或线程本地存储持续时间的命名变量,在进行任何其他初始化之前,都无需进行常量初始化 我在传统的私有构造函数和静态公共方法中使用Singleton ,其中有一个本地静态Singleton对象,该方法将返回该对象。 我的问题是,该类还具 ...
根据http://en.cppreference.com/w/cpp/language/zero_initialization ,我无法理解我班级中的某个成员何时以及为何被零初始化。 考虑以下测试程序: 我正在声明一个类,该类具有签名为“void functionname()”的 8 个函数指 ...