问题标签 [zero-initialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3018 浏览

assembly - 在 8086 上清零 %EAX 寄存器

在 DEC PDP-8 小型机的每个程序开始时,我没有失败地发出的第一条指令是CLA CLL清除累加器和链接(溢出)位。

8086 系列处理器中似乎不存在这种简单的指令,我在各种技术网站上看到了很多关于最快方法的讨论,比如与自身进行异或运算。

这是否已经由处理器逻辑处理?那么在程序启动前就保证为0?

0 投票
1 回答
609 浏览

c++ - 当我对向量进行 0 初始化时,它是否与 calloc 具有相同的效果?

所以calloc调用操作系统来检索堆上的归​​零页面:https ://stackoverflow.com/a/2688522/2642059

C++11 的vector构造函数只接受 asize_t和 0 初始化值呢?在一般情况下向操作系统询问归零页面,还是需要初始化它的自身,因为vector' 的元素可能是具有默认初始化程序的类,它将成员默认为非零值?

0 投票
1 回答
91 浏览

c++ - 获取默认初始化(非值/零初始化)的 POD 作为右值

是否可以将类型的右值传递Afoo()而不对其进行值初始化?我们必须使用值初始化还是左值?

你可能会问,当它“花费”不超过 10 纳秒时,避免值初始化有什么意义。像这样的情况怎么样:我们正在寻找遗留应用程序中由 valgrind 未初始化的内存访问引起的错误,并且零不被视为应用程序的有效值。值初始化将阻止 valgrind 发现未初始化内存访问的位置。

您可能会说打印未初始化的值是 UB,但我的“真实”用例并不限于打印。没有它,我的问题应该仍然有效。

0 投票
1 回答
10945 浏览

machine-learning - 在张量流中使用 get_variable 对偏差进行零初始化

我正在修改的代码tf.get_variable用于权重变量和tf.Variable偏差初始化。get_variable经过一番搜索,由于它在共享方面的可移植性,它似乎总是受到青睐。因此,我尝试将偏差变量更改为get_variable但似乎无法使其正常工作。

原来的:tf.Variable(tf.zeros([128]), trainable=True, name="b1")

我的尝试:tf.get_variable(name="b1", shape=[128], initializer=tf.zeros_initializer(shape=[128]))

我收到一条错误消息,指出不应为常量指定形状。但是删除形状会引发错误,因为没有参数。

我很陌生,tf所以我可能误解了这里的一些基本内容。我在这里先向您的帮助表示感谢 :)

0 投票
1 回答
108 浏览

c++ - C++11 类成员初始化

刚刚从 C++03 切换到 C++11,我想知道,以下是否定义为始终为零初始化data所有元素的数组?

0 投票
1 回答
12892 浏览

c++ - C++ 零初始化

根据http://en.cppreference.com/w/cpp/language/zero_initialization,我无法理解我班级中的某个成员何时以及为何被零初始化。

考虑以下测试程序:

我声明一个类有一个由签名“void functionname()”的 8 个函数指针组成的数组。main当我在as MyTest testObj = {};or中声明和初始化类的一个对象时MyTest testObj;,我希望它是零初始化的,即所有指针都是空指针。

但是,在我的 Windows 10 机器上使用 g++ 5.3.0 编译g++ -m32 -o test -std=c++14 test.cpp && test机器会给出输出:

看起来像堆栈中未初始化的值..

如果我将对象的声明移到 main 之外(作为全局变量),它会再次打印全零。

如果我正确理解了 cppreference,这是因为我有一个静态存储持续时间的变量,因此是零初始化的。myFunctions它通过对我的类(即)数组的所有非静态数据成员进行零初始化来初始化我的类类型。一个数组是通过零初始化它的每个元素来初始化的,在我的函数指针的情况下,它是一个空指针。

为什么当我用 声明它时它不会将我的对象初始化为零MyTest testObj = {};

0 投票
0 回答
72 浏览

c - 您可以将动态大小的可变长度数组初始化为零吗?

在新学校的 21 世纪 C 提示一书中。在第 171 页上,它说,

现在是可悲的部分:假设您有一个可变长度数组(即,其长度由运行时变量设置)。将其归零的唯一方法是通过memset

就这样。1.

该部分的脚注如下:

  1. 您可以为此责备 ISO C 标准 §6.7.8(3),因为它坚持不能初始化可变长度数组。我说编译器应该能够解决它。

尽管在StackOverflow 上有关此问题的开创性答案中,我没有在任何地方看到这一点,这似乎表明这会起作用,

这是对 ISO C 2011 标准的正确解读吗?

0 投票
1 回答
252 浏览

c++ - Static Initialization Order for Singletons

So I'm reading that for Zero Initialization will initialize:

Every named variable with static or thread-local storage duration that is not subject to constant initialization, before any other initialization

I am using a Singleton with the traditional private constructor and a static public method in which there is a local static singleton object which the method will be return.

My problem is that the class also has a static vector which is zero-initialized and it seems to be getting initialized after the singleton, meaning that I cannot interact with it. Is there something that governs this initialization order or is that simply implementation defined?


This is a simplification of what my code looks like:

I'm running into this problem because elsewhere in the code I'm initializing a static global variable like this and not getting 13: static const auto element = Foo.Get().Front()

0 投票
0 回答
46 浏览

r - 为什么 glmmTMP 估计模拟数据的零膨胀康威麦克斯韦泊松混合模型的大约一半值

我正在尝试估计零膨胀康威麦克斯韦泊松混合模型的参数。我不明白为什么 GlmmTMP 函数为非零效应部分提供大约一半的值,并为零部分和色散部分提供很好的估计?

例如:- 截距的实际值是 2.5,我得到 1.21,性别女性的实际值是 1.2,我得到 0.548342 请在这种情况下帮帮我吗?谢谢

0 投票
2 回答
2447 浏览

c++ - std::unordered_map operator[] 是否对不存在的键进行零初始化?

根据 cppreference.com,std::map::operator[]对于不存在的值进行零初始化。

但是,同一个站点没有提到零初始化std::unordered_map::operator[],除了它确实有一个依赖于此的示例。

当然这只是一个参考站点,不是标准。那么,下面的代码可以吗?