Search code examples
c++arraysqtinitializer

Error: Assigning to an array from an initializer list; code working on ubuntu 10.04 but not on 14.04


I would be very happy if someone here could point me in the right direction regarding my issue.

I have read multiple posts about this matter on this and some other forums, but to no avail.

I work under Ubuntu 14.04 in Qt Creator 3.2.1 with C++. The code is large and old and it compiles on some other, older computer under Ubuntu 10.04 with no problems.

The error that I get is "Assigning to an array from an initializer list".

The code is like this:

MapOut =
{
    {0,0},{1,0},{2,0},{3,0},{4,0},{5,0},{6,0},{7,0},
    {0,1},{1,1},{2,1},{3,1},{4,1},{5,1},{6,1},{7,1},
    {0,2},{1,2},{2,2},{3,2},{4,2},{5,2},{6,2},{7,2},
    {0,3},{1,3},{2,3},{3,3},{4,3},{5,3},{6,3},{7,3},
    {0,4},{1,4},{2,4},{3,4},{4,4},{5,4},{6,4},{7,4},
    {0,5},{1,5},{2,5},{3,5},{4,5},{5,5},{6,5},{7,5},
    {0,6},{1,6},{2,6},{3,6},{4,6},{5,6},{6,6},{7,6},
    {0,7},{1,7},{2,7},{3,7},{4,7},{5,7},{6,7},{7,7},
    {0,8},{1,8},{2,8},{3,8},{4,8},{5,8},{6,8},{7,8},
    {0,9},{1,9},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9},
    {0,10},{1,10},{2,10},{3,10},{4,10},{5,10},{6,10},{7,10},
    {0,11},{1,11},{2,11},{3,11},{4,11},{5,11},{6,11},{7,11},
    {0,12},{1,12},{2,12},{3,12},{4,12},{5,12},{6,12},{7,12},
    {0,13},{1,13},{2,13},{3,13},{4,13},{5,13},{6,13},{7,13},
    {0,14},{1,14},{2,14},{3,14},{4,14},{5,14},{6,14},{7,14},
    {0,15},{1,15},{2,15},{3,15},{4,15},{5,15},{6,15},{7,15},
    {0,16},{1,16},{2,16},{3,16},{4,16},{5,16},{6,16},{7,16},
    {0,17},{1,17},{2,17},{3,17},{4,17},{5,17},{6,17},{7,17},
    {0,18},{1,18},{2,18},{3,18},{4,18},{5,18},{6,18},{7,18},
    {0,19},{1,19},{2,19},{3,19},{4,19},{5,19},{6,19},{7,19},
    {0,20},{1,20},{2,20},{3,20},{4,20},{5,20},{6,20},{7,20},
    {0,21},{1,21},{2,21},{3,21},{4,21},{5,21},{6,21},{7,21},
    {0,22},{1,22},{2,22},{3,22},{4,22},{5,22},{6,22},{7,22},
    {0,23},{1,23},{2,23},{3,23},{4,23},{5,23},{6,23},{7,23}
};

Pretty large array... 36x8... And if I do this:

static int MapOut[] =
{
    {0,0},{1,0},{2,0},{3,0},{4,0},{5,0},{6,0},{7,0},
    {0,1},{1,1},{2,1},{3,1},{4,1},{5,1},{6,1},{7,1},
    {0,2},{1,2},{2,2},{3,2},{4,2},{5,2},{6,2},{7,2},
    {0,3},{1,3},{2,3},{3,3},{4,3},{5,3},{6,3},{7,3},
    {0,4},{1,4},{2,4},{3,4},{4,4},{5,4},{6,4},{7,4},
    {0,5},{1,5},{2,5},{3,5},{4,5},{5,5},{6,5},{7,5},
    {0,6},{1,6},{2,6},{3,6},{4,6},{5,6},{6,6},{7,6},
    {0,7},{1,7},{2,7},{3,7},{4,7},{5,7},{6,7},{7,7},
    {0,8},{1,8},{2,8},{3,8},{4,8},{5,8},{6,8},{7,8},
    {0,9},{1,9},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9},
    {0,10},{1,10},{2,10},{3,10},{4,10},{5,10},{6,10},{7,10},
    {0,11},{1,11},{2,11},{3,11},{4,11},{5,11},{6,11},{7,11},
    {0,12},{1,12},{2,12},{3,12},{4,12},{5,12},{6,12},{7,12},
    {0,13},{1,13},{2,13},{3,13},{4,13},{5,13},{6,13},{7,13},
    {0,14},{1,14},{2,14},{3,14},{4,14},{5,14},{6,14},{7,14},
    {0,15},{1,15},{2,15},{3,15},{4,15},{5,15},{6,15},{7,15},
    {0,16},{1,16},{2,16},{3,16},{4,16},{5,16},{6,16},{7,16},
    {0,17},{1,17},{2,17},{3,17},{4,17},{5,17},{6,17},{7,17},
    {0,18},{1,18},{2,18},{3,18},{4,18},{5,18},{6,18},{7,18},
    {0,19},{1,19},{2,19},{3,19},{4,19},{5,19},{6,19},{7,19},
    {0,20},{1,20},{2,20},{3,20},{4,20},{5,20},{6,20},{7,20},
    {0,21},{1,21},{2,21},{3,21},{4,21},{5,21},{6,21},{7,21},
    {0,22},{1,22},{2,22},{3,22},{4,22},{5,22},{6,22},{7,22},
    {0,23},{1,23},{2,23},{3,23},{4,23},{5,23},{6,23},{7,23}
};

the error is "braces around scalar initializer for type 'int' ".

I've had no luck getting over this problem so far... Any help would be much appreciated... Thanks in advance!


Solution

  • You don't have an array of integers, you have an array of arrays of integers. So you need to declare it as such:

    static int MapOut[][2] = { ... };