c ++:数组,初始化程序太多

时间:2015-11-22 15:03:45

标签: c++ c++11 g++

#include <iostream>
#include <vector>
#include <string>
#include <fstream>

using namespace std;
int main(){
char somearray[6][5] = {{'M','a','r', 't', 'i', 'n'},
                        {'L','i','a','m','z'}};

for(int j=0; j<5; j++ ){
    for (int k = 0; k<5; k++ ){
        cout<< somearray[j][k];
    }
}



return 0;
}

错误:

 test.cpp: In function ‘int main()’:
 test.cpp:11:29: error: too many initializers for ‘char [5]’
     {'L','i','a','m','z'}};

有一些我不明白的东西,我有一个错误,我试图弄乱多维数组初始化器但是我不断得到太多的initalizers错误。我遵循了一个c ++教程,我不断收到这个错误。我不明白。

2 个答案:

答案 0 :(得分:4)

您的第一个元素somearray[0]有6个元素

{'M','a','r', 't', 'i', 'n'}

而不是5.记住somearray[6][5]声明一个包含6行和5列的二维数组,或者等效地,是6个char[5]数组的阵列。该错误似乎表明您的最后一个元素,但它实际上表示数组定义的结束。

答案 1 :(得分:0)

不幸的是,你的编译器似乎有点愚蠢。

{'L','i','a','m','z'}没问题,{'M','a','r', 't', 'i', 'n'}对于char[5]来说太长了。