"int [0]"C++ 的初始值设定项太多
too many initializers for 'int [0]' c++
First:
int k[] ={1,2,3,4,5};
第二:
struct slk
{
int k[] ={1,2,3,4,5};
};
对于这两个陈述,为什么第一个通过编译,而第二个给我
错误:"int [0]"的初始值设定项太多。 如果我设置 k[5],编译就会通过;
此错误消息是什么意思?注意:在 GNU GCC 版本 4.7.2
C++11 中,允许使用类内成员初始值设定项,但基本上与在成员初始化列表中初始化相同。因此,必须显式声明数组的大小。
Stroustrup在他的网站上有一个简短的解释。
错误消息表示您为长度为 0 的数组提供了太多项,这是int []
在该上下文中的计算结果。
在第一个示例中,某些事情(实际内存分配)实际上正在发生。计算机可以轻松计算提供给它的物品数量,并将其用作容量。在第二次使用中,作为结构的一部分,数组只是结构模板的一部分。在第二种情况下,必须在编译时显式给出并知道大小。这里没有自动计数。它类似于函数声明与定义以及变量声明(告诉类型但内存不变)及其调用/使用(程序起作用的地方)。
可能是因为struct
编译器需要您显式指定大小。
C 初始化结构中的数组(双关语)
这是两个完全不同的上下文:
第一个是变量声明(带有初始化器子句)。
第二个是类型定义。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 错误:字符数组的初始值设定项太多
- 对象实例化调用构造函数的次数太多
- Levenshtein 两个文件的距离花费了太多时间
- 我有三个 getline,但是一旦编译,输入就太多了
- 将使用太多的纹理插值器 - 带旋转的着色器
- C/C++:socket() 创建在循环中失败,打开的文件太多
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- C++:数组<>初始值设定项太多
- GLib-ERROR:为GWakeup创建管道:打开的文件太多
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 我会导致太多内存泄漏,以至于我的计算机无响应吗?
- ZeroMq:打开的文件太多.在同一对象上连续增长的fd使用数
- 读取串行命令花费太多时间
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- BRK(0) 花费的时间是否太多?
- Valgrind 声称内存释放中的自由空间太多
- 野牛:如何修复这个"参数太多而无法运行'int yylex()'错误?
- "int [0]"C++ 的初始值设定项太多
- C++ 错误:"int [100]"的初始值设定项太多|