Initialization data exceeds declared size
#1

I have a problem with arrays (I'm not sure if this how should I call them).
I made this:

pawn Код:
//    x,                y,                  z,          interiorid,       luxury,          rooms,          floors
new gHouseInteriors[42][7] = {
{ "2350.1597",      "-1181.0658",       "1028.9766",        "5",            "0",            "9",            "2"     }, //
{ "227.7559",       "1114.3844",        "1081.992",         "5",            "1",            "8",            "2"     }, //
{ "234.2826",       "1065.229",         "1084.2101",        "6",            "1",            "7",            "2"     }, //
{ "140.0744",       "1369.5996",        "1083.8647",        "5",            "1",            "6",            "2"     }, //
{ "84.9244",        "1324.2983",        "1083.8594",        "9",            "1",            "6",            "2"     }, //
{ "2194.7900",      "-1204.3500",       "1049.0234",        "6",            "1",            "6",            "1"     }, //
{ "234.6087",       "1187.8195",        "1080.2578",        "3",            "1",            "6",            "2"     }, //
{ "2319.1272",      "-1023.9562",       "1050.2109",        "9",            "1",            "5",            "2"     }, //
{ "295.1391",       "1473.3719",        "1080.2578",        "15",           "1",            "5",            "1"     }, //
{ "2323.7063",      "-1147.6509",       "1050.7101",        "12",           "1",            "5",            "2"     }, //
{ "446.626",        "1397.738",         "1084.3047",        "2",            "0",            "5",            "1"     }, //
{ "22.861",         "1404.9165",        "1084.4297",        "5",            "0",            "5",            "2"     }, //
{ "961.9308",       "-51.9071",         "1001.1172",        "3",            "1",            "4",            "1"     }, //
{ "2365.1089",      "-1133.0795",       "1051.875",         "8",            "1",            "4",            "1"     }, //
{ "24.3769",        "1341.1829",        "1084.375",         "10",           "1",            "4",            "1"     }, //
{ "318.5645",       "1118.2079",        "1084.8828",        "5",            "0",            "4",            "1"     }, //
{ "260.7421",       "1238.2261",        "1084.2578",        "9",            "0",            "4",            "1"     }, //
{ "239.2819",       "1114.1991",        "1081.9922",        "5",            "1",            "3",            "1"     }, //
{ "261.1165",       "1287.2197",        "1080.2578",        "4",            "1",            "3",            "1"     }, //
{ "2236.6997",      "-1078.9478",       "1049.0234",        "2",            "1",            "3",            "1"     }, //
{ "-42.5267",       "1408.23",          "1084.4297",        "8",            "1",            "3",            "1"     }, //
{ "224.288",        "1289.1907",        "1082.1406",        "1",            "0",            "3",            "1"     }, //
{ "2261.0977",      "-1137.8833",       "1050.6328",        "10",           "0",            "3",            "1"     }, //
{ "221.6766",       "1142.4962",        "1082.6094",        "4",            "0",            "3",            "1"     }, //
{ "-262.1759",      "1456.6158",        "1084.3672",        "4",            "0",            "3",            "2"     }, //
{ "-68.5145",       "1353.8485",        "1080.2109",        "6",            "0",            "3",            "1"     }, //
{ "-285.2511",      "1471.197",         "1084.375",         "15",           "0",            "3",            "1"     }, //
{ "748.4623",       "1438.2378",        "1102.9531",        "6",            "0",            "3",            "1"     }, //
{ "2282.9099",      "-1138.2900",       "1050.8984",        "11",           "0",            "3",            "1"     }, //
{ "2447.8704",      "-1704.4509",       "1013.5078",        "2",            "0",            "2",            "1"     }, //
{ "2807.3604",      "-1171.7048",       "1025.5703",        "8",            "0",            "2",            "2"     }, //
{ "225.5707",       "1240.0643",        "1082.1406",        "2",            "1",            "1",            "1"     }, //
{ "245.2307",       "304.7632",         "999.1484",         "1",            "0",            "1",            "1"     }, //
{ "2496.0549",      "-1695.1749",       "1014.7422",        "3",            "0",            "1",            "2"     }, //
{ "269.6405",       "305.9512",         "999.1484",         "2",            "0",            "1",            "1"     }, //
{ "419.8936",       "2537.1155",        "10.0000",          "10",           "0",            "1",            "1"     }, //
{ "2233.6919",      "-1112.8107",       "1051.8828",        "5",            "0",            "1",            "1"     }, //
{ "269.6405",       "305.9512",         "999.1484",         "2",            "0",            "1",            "1"     }, //
{ "306.1966",       "307.819",          "1003.3047",        "4",            "0",            "1",            "1"     }, //
{ "344.9984",       "307.1824",         "999.1557",         "6",            "0",            "1",            "1"     }, //
{ "2216.1282",      "-1076.3052",       "1050.4844",        "1",            "0",            "1",            "1"     }, //
};
And error:
gm.pwn(75) : error 018: initialization data exceeds declared size
Line 75 it's the first line from gHouseInteriors.
Any ideas?

Thanks in advance.
Reply
#2

Those are strings. You have 2 dimensions with 294 cells, while trying to use ~5000 cells. You need a 3rd dimension added with the maximum size of the string:

"-1078.9478" biggest one - 10 chars. Use 16 to be sure
Код:
new gHouseInteriors[42][7][16] = {
...
Also, you won't be able to use those numbers as usual ones, you'll have to 'strval' and 'floatstr' them first.

To avoid that you'll need to use 2 separate blocks of code, one for floats (Float:gHouseInteriorPos[42][3]) and other one for integers. (gHouseInteriorInfo[42][4])

This way you'll save 16x more memory than using the method you have.
Reply
#3

Код:
new gHouseInteriors[][] = {
Reply
#4

Quote:
Originally Posted by CaHbKo
Посмотреть сообщение
Those are strings. You have 2 dimensions with 294 cells, while trying to use ~5000 cells. You need a 3rd dimension added with the maximum size of the string:

"-1078.9478" biggest one - 10 chars. Use 16 to be sure
Код:
new gHouseInteriors[42][7][16] = {
...
Also, you won't be able to use those numbers as usual ones, you'll have to 'strval' and 'floatstr' them first.

To avoid that you'll need to use 2 separate blocks of code, one for floats (Float:gHouseInteriorPos[42][3]) and other one for integers. (gHouseInteriorInfo[42][4])

This way you'll save 16x more memory than using the method you have.
Thanks for help & advice =D
I used 2 separate blocks and it worked, the version with [42][7][16] didn't worked.

Wrong, it's not working.
When I used the variable, it gave me the next error:
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(116) : error 029: invalid expression, assumed zero
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(116) : error 008: must be a constant expression; assumed zero
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(160) : error 029: invalid expression, assumed zero
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(160) : error 008: must be a constant expression; assumed zero


This is where I used the gHouseInteriorPos:
pawn Код:
format(stringh, sizeof(stringh), "%s%d. ({00AAFF}%d Rooms{FFFFFF}) %f,%f,%f\r\n", stringh, gHouseCount[playerid], floor, gHouseInteriorPos[i][0], gHouseInteriorPos[i][1], gHouseInteriorPos[i][2]);
This is where I used the gHouseInteriorInfo:
pawn Код:
for(new i = 0; i<sizeof(gHouseInteriorInfo); i++)
{
    if(gHouseInteriorInfo[i][2] == floor)
Blocks:
pawn Код:
//    x,                y,                  z
new Float:gHouseInteriorPos[42][3] = {
{ 2350.1597,        -1181.0658,         1028.9766   }, //
{ 227.7559,         1114.3844,          1081.992    }, //
{ 234.2826,         1065.229,           1084.2101   }, //
{ 140.0744,         1369.5996,          1083.8647   }, //
{ 84.9244,          1324.2983,          1083.8594   }, //
{ 2194.7900,        -1204.3500,         1049.0234   }, //
{ 234.6087,         1187.8195,          1080.2578   }, //
{ 2319.1272,        -1023.9562,         1050.2109   }, //
{ 295.1391,         1473.3719,          1080.2578   }, //
{ 2323.7063,        -1147.6509,         1050.7101   }, //
{ 446.626,          1397.738,           1084.3047   }, //
{ 22.861,           1404.9165,          1084.4297   }, //
{ 961.9308,         -51.9071,           1001.1172   }, //
{ 2365.1089,        -1133.0795,         1051.875    }, //
{ 24.3769,          1341.1829,          1084.375    }, //
{ 318.5645,         1118.2079,          1084.8828   }, //
{ 260.7421,         1238.2261,          1084.2578   }, //
{ 239.2819,         1114.1991,          1081.9922   }, //
{ 261.1165,         1287.2197,          1080.2578   }, //
{ 2236.6997,        -1078.9478,         1049.0234   }, //
{ -42.5267,         1408.23,            1084.4297   }, //
{ 224.288,          1289.1907,          1082.1406   }, //
{ 2261.0977,        -1137.8833,         1050.6328   }, //
{ 221.6766,         1142.4962,          1082.6094   }, //
{ -262.1759,        1456.6158,          1084.3672   }, //
{ -68.5145,         1353.8485,          1080.2109   }, //
{ -285.2511,        1471.197,           1084.375    }, //
{ 748.4623,         1438.2378,          1102.9531   }, //
{ 2282.9099,        -1138.2900,         1050.8984   }, //
{ 2447.8704,        -1704.4509,         1013.5078   }, //
{ 2807.3604,        -1171.7048,         1025.5703   }, //
{ 225.5707,         1240.0643,          1082.1406   }, //
{ 245.2307,         304.7632,           999.1484    }, //
{ 2496.0549,        -1695.1749,         1014.7422   }, //
{ 269.6405,         305.9512,           999.1484    }, //
{ 419.8936,         2537.1155,          10.0000     }, //
{ 2233.6919,        -1112.8107,         1051.8828   }, //
{ 269.6405,         305.9512,           999.1484    }, //
{ 306.1966,         307.819,            1003.3047   }, //
{ 344.9984,         307.1824,           999.1557    }, //
{ 2216.1282,        -1076.3052,         1050.4844   }, //
};
// interiorid,    luxury,     rooms,     floors
new gHouseInteriorInfo[42][4] = {
{ 5,                0,          9,          2   }, //
{ 5,                1,          8,          2   }, //
{ 6,                1,          7,          2   }, //
{ 5,                1,          6,          2   }, //
{ 9,                1,          6,          2   }, //
{ 6,                1,          6,          1   }, //
{ 3,                1,          6,          2   }, //
{ 9,                1,          5,          2   }, //
{ 15,               1,          5,          1   }, //
{ 12,               1,          5,          2   }, //
{ 2,                0,          5,          1   }, //
{ 5,                0,          5,          2   }, //
{ 3,                1,          4,          1   }, //
{ 8,                1,          4,          1   }, //
{ 10,               1,          4,          1   }, //
{ 5,                0,          4,          1   }, //
{ 9,                0,          4,          1   }, //
{ 5,                1,          3,          1   }, //
{ 4,                1,          3,          1   }, //
{ 2,                1,          3,          1   }, //
{ 8,                1,          3,          1   }, //
{ 1,                0,          3,          1   }, //
{ 10,               0,          3,          1   }, //
{ 4,                0,          3,          1   }, //
{ 4,                0,          3,          2   }, //
{ 6,                0,          3,          1   }, //
{ 15,               0,          3,          1   }, //
{ 6,                0,          3,          1   }, //
{ 11,               0,          3,          1   }, //
{ 2,                0,          2,          1   }, //
{ 8,                0,          2,          2   }, //
{ 2,                1,          1,          1   }, //
{ 1,                0,          1,          1   }, //
{ 3,                0,          1,          2   }, //
{ 2,                0,          1,          1   }, //
{ 10,               0,          1,          1   }, //
{ 5,                0,          1,          1   }, //
{ 2,                0,          1,          1   }, //
{ 4,                0,          1,          1   }, //
{ 6,                0,          1,          1   }, //
{ 1,                0,          1,          1   }, //
};
Reply
#5

pawn Код:
new gHouseInteriors[][] = {
Compiled fine for me.
Reply
#6

Try replacing 'new' with 'const'.
Reply
#7

you must
Код:
new gHouseInteriors[][] = {
!
Reply
#8

Quote:
Originally Posted by Jeffry
Посмотреть сообщение
pawn Код:
new gHouseInteriors[][] = {
Compiled fine for me.
pawn Код:
new Float:gHouseInteriorPos[][] = {
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(116) : error 029: invalid expression, assumed zero
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(116) : error 008: must be a constant expression; assumed zero


Quote:
Originally Posted by CaHbKo
Try replacing 'new' with 'const'.
pawn Код:
const gHouseInteriorInfo[42][4] = {
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(11 : error 001: expected token: "=", but found "["
F:\SERVER~1\SA-MP\SAMP03~3\GAMEMO~1\gm.pwn(160) : error 010: invalid function or declaration


? if I'm not using them, it's compiling very well...

This is where I'm using them...
http://pastebin.com/BwGwddzE
Reply
#9

I've found a code like yours that works and been looking for difference, and found one.

Код:
}, //
};
Replace with
Код:
} //
};
Reply
#10

Quote:
Originally Posted by CaHbKo
Посмотреть сообщение
I've found a code like yours that works and been looking for difference, and found one.

Код:
}, //
};
Replace with
Код:
} //
};
F**k, I'm too blind, how could I miss that :\
Thanks it worked.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)