c++ - 'int [0]' c++ 的初始值设定项太多

标签 c++ arrays c++11 struct initialization

首先:

int k[] ={1,2,3,4,5};

第二个:

struct slk
{
    int k[] ={1,2,3,4,5};
};

那两条语句,为什么第一个编译通过了,第二个给了我

error:too many initializers for 'int [0]'. the compilation would passed if I set k[5];

这个错误信息是什么意思?注意:代码在 GNU GCC 版本 4.7.2 上测试

最佳答案

在 C++11 中,类内成员初始化器是允许的,但基本上与在成员初始化列表中初始化相同。因此,必须明确说明数组的大小。

Stroustrup 在他的网站上有一个简短的解释 here .

错误消息意味着您为长度为 0 的数组提供了太多项,这是 int [] 在该上下文中的计算结果。

关于c++ - 'int [0]' c++ 的初始值设定项太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024496/

相关文章:

Java 错误 : Issue with for loop which should convert every content of a string array to a float array

c++ - std::vector 的奇怪行为

c++ - NVI 和去虚拟化

C++ linux 应用程序在长时间运行后停止系统。如何寻找原因?

C++/SFML 窗口创建失败

c++ - 计算套接字上传速度

c++ - 如何在 C++ 中随机分配给 vector ?

java - 二进制搜索字符串数组

php - 比较 PHP 中的两个二维数组与 array_diff 错误

c++ - 为什么 std::tuple 的 get helper 返回右值引用而不是值