问题标签 [array-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 投票
2 回答
59 浏览

java - 二维数组初始化的区别

在我的 JPanel 中,我使用的是 tablelayout.jar Oracle 库(请看这里),因此,一般来说,我必须执行以下操作:

其中“30”分别是 cos 和 rows 的维度。在这种情况下,我们需要方形单元格。所以我可以这样做,例如:

我们认为像这样声明“大小”矩阵并不好,因此我们将初始化更改如下:

在哪里

但这不起作用。当我们尝试向 JPanel 添加一些东西时,什么都不会显示。它只有在我们手动编写第一个初始化时才有效。为什么这个?

0 投票
6 回答
4538 浏览

java - 在Java中初始化对象数组

我需要帮助来理解如何在 Java 中初始化一个类的对象。

我的代码是这样的:

当我在 Eclipse 中编写上面的代码时,它给了我一个错误,说“空指针访问:变量数据只能在这个位置为空”。

我尝试了所有纠正错误的方法,但没有运气。

0 投票
2 回答
1413 浏览

c - 无法使用包含函数指针的结构初始化数组 - 错误:初始化元素不是常量

我正在尝试初始化一个结构数组。该结构包含一个函数指针作为其数据成员之一。但是我的编译器给了我一个错误,抱怨初始化器元素不是常量。如何使用声明的函数指针初始化数组?

0 投票
2 回答
92 浏览

c++ - 数组初始化问题:意外行为

以下程序完美构建。但是,在执行过程中,无论degree我提供什么值,程序都只接受2个数组元素作为输入。我想重新声明数组f[]fDash[]. 在 JAVA 中,可以使用new关键字轻松地重新声明数组。在c ++中也可以吗?如果没有,有什么替代方案?PS 我使用的是 CodeBlocks 13.12,编译器设置是标准的。

0 投票
1 回答
2763 浏览

c++ - 没有默认构造函数的 C++ 成员数组初始化

我有一个Thing没有默认构造函数的类。

现在我们定义另一个类,它现在必须立即初始化数组元素,因为没有默认构造函数,就不能进行后期赋值。所以我们有:

这是正确的方法吗?

GCC 可以很好地编译它,而 Clang 没有,说明应该使用“初始化列表”。我尝试了几种替代方法,例如双括号{{ ... }}等,但无法获得 Clang 的编译等效项。

如何在 Clang 中初始化没有默认构造函数的数组?

0 投票
1 回答
2170 浏览

java - 插入 AssignmentOperator ArrayInitializer 错误

我正在学习java,但遇到了这个问题,我正在编写一个简单的代码,但是这个错误又出现了,有人能帮我解决我做错了什么吗?

它给出的错误是-

我想要的输出是这个 -

我知道这可能很简单,但我只是 java 新手,所以我想学习这个。

提前致谢 !

0 投票
1 回答
214 浏览

c++ - 删除指向数组的指针

在我的一个大型项目中,我遇到了删除未指定大小的初始化数组的问题。
我写了一个简单的程序来检查出了什么问题,这里是代码

如您所见, anotherPointer 在没有明确定义大小的情况下进行了初始化。
当然,只有一条标记为进场的线路同时处于活动状态。
在方法A输出看起来像那样(<crash>表示程序意外结束)

在方法 B 中,输出为

在方法 C 中,有时输出为 3 2 1 0,而其他时间应用程序崩溃而没有打印任何内容。

据我所知,没有指定数组大小的初始化以不同的内存分配结束,但我不知道如何解决最终崩溃的应用程序问题,这是我的问题。

我正在使用 Visual Studio Pro 2013 Update 4 (MSVC++)

编辑
如果除了明确指定大小之外没有解决该问题的方法,我的问题是
为什么该“功能”完全在 MSCC++ 中实现?

0 投票
3 回答
84 浏览

c - 两种数组指针初始化方法的区别

请解释两者的区别

0 投票
1 回答
662 浏览

c++ - VC++14(VS2015)中数组值初始化的内部编译器错误

我在 Visual Studio 2015 CTP 6 上获得了 ICE。不幸的是,这发生在一个大型项目中,我无法在此处发布整个代码,而且我无法在最小样本上重现该问题。我希望得到的是帮助构建这样一个样本(提交给微软),或者可能是关于正在发生的事情和/或我做错了什么的启发。

这是我正在做的事情的模型。(请注意,我在这里展示的代码不会生成 ICE;我只是使用这个简单的示例来解释这种情况。)

我有一个A不可复制的类(它有几个“引用”成员)并且没有默认构造函数。另一个类,B包含一个As 数组(纯 CA值数组,没有引用/指针),我在B使用统一初始化语法的构造函数中初始化这个数组。请参阅下面的示例代码。

我不能使用std::array,因为我需要在它们的最终位置构造元素(不能复制。)我不能使用std::vector,因为我需要B包含As。

请注意,如果我不使用数组并使用单个变量(例如A a0, a1, a2;,我可以这样做,因为数组很小且大小固定),ICE 就会消失。但这不是我想要的,因为我将失去通过索引获取它们的能力,这是我需要的。我可以在数组上使用松散变量的联合来解决我的 ICE 问题获得索引(使用变量构造,使用数组访问),但我认为这会导致“未定义的行为”并且看起来很复杂。

上面的示例和我的实际代码(除了比例)之间的明显区别是,A并且B是类而不是结构,每个都在自己的源/头文件对中声明/定义,并且没有一个构造函数是内联的。(我复制了这些,但仍然无法重现 ICE。)

对于我的实际项目,我尝试清理构建文件并重建,但无济于事。有什么建议之类的吗?

PS我不确定我的标题是否合适。有什么建议吗?!?!

更新 1:这是 C1001 致命错误消息中引用的编译器文件:(compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 230).

更新 2:由于我忘记提及,代码库在 C++14 模式下的 GCC 4.9.2 下干净(且正确)编译。

另外,我正在编译禁用所有优化。

更新3:我发现如果我重新排列成员数据B并将数组放在最后,代码就会编译。我尝试了其他几种排列方式,它有时会编译,有时不会。我看不到任何关于在数组之前出现的其他成员使编译器完全运行 ICE 的模式!(作为 UDT 或原语,是否有构造函数,是否有 POD,引用或指针或值类型,...)

这意味着我对我的问题有某种解决方案,虽然我的内部类布局对我和这个应用程序很重要,但我可以容忍性能损失(由于将一些热数据与其他数据分开导致缓存未命中)克服这件事。

但是,我仍然非常喜欢能够提交给 Microsoft 的 ICE 的最小复制品。我不想在接下来的两年里被这个困住(至少!)

更新 4:我已经尝试过 VS2015 RC 并且 ICE 仍然存在(尽管错误消息指的是不同的内部代码行,即同一“main.c”文件中的第 247 行。)

在 Microsoft Connect 上打开了一个错误报告

0 投票
4 回答
578 浏览

c++ - 数组成员可以自引用初始化吗?

考虑以下代码,其中我们D根据 的另一部分来初始化 的一部分D

上述程序是否定义明确?我们可以安全地使用同一个数组的一部分来初始化它的另一部分吗?