Jump to content
  • 0

pomoc multi-dimensional arrays


Arthom

Dotaz

Čaute, pri pawnení som narazil na takú chybu, ktorú som ešte nikdy v živote nevidel v pawn :d

error 052: multi-dimensional arrays must be fully initialized

 

Problém to robí

for (new i = 0; i < strval(carLength[listitem]); i++) {
        format(row, sizeof(row), "%s\r\n", carNames[listitem][i]);
	strcat(list, row);
}

carLength:

new carLength[][] = { 11, 3, 11, 9, 10, 20, 33, 8, 12, 26, 18 };

carNames:

new carNames[13][][128] = {
  { "Pizzaboy", "PCJ-600", "Faggio", "Freeway", "Sanchez", "Quad", "FCR-900", "NRG-500", "HPV-1000", "BF-400", "Wayfarer" },
  { "BMX", "Bike", "Mountain Bike" },
  { "Skimmer", "Rustler", "Beagle", "Cropduster", "Stuntplane", "Shamal", "Nevada", "AT-400", "Andromada", "Dodo" },
  { "Leviathan", "Hunter", "Seasparrow", "Sparrow", "Maverick", "News Maverick", "Police Maverick", "Cargobob", "Raindance" },
  { "Predator", "Squallo", "Speeder", "Reefer", "Tropic", "Coastguard", "Dinghy", "Marquis", "Jetmax", "Launch" },
  { "Alpha", "Banshee", "Blista Compact", "Buffalo", "Bullet", "Cheetah", "Club", "Euros", "Flash", "Hotring Racer (A)", "Hotring Racer (B)", "Hotring Racer (C)", "Infernus", "Jester", "Phoenix", "Sabre", "Super GT", "Turismo", "Uranus", "ZR-350" },
  { "Admiral", "Bloodring Banger", "Bravura", "Buccaneer", "Cadrona", "Clover", "Elegant", "Emperor", "Esperanto", "Fortune", "Grendale ({FF0000}poškodené)",
    "Grendale", "Greenwood", "Hermes", "Intruder", "Majestic", "Manana", "Merit", "Nebula", "Oceanic", "Premier", "Previon", "Primo", "Sentinel", "Stafford", "Sultan", "Sunrise", "Tampa", "Vincent", "Virgo", "Willard", "Washington" },
  { "Blade", "Broadway", "Remington", "Savanna", "Slamvan", "Tahoma", "Tornado", "Voodoo" },
  { "Bandito", "BF Injection", "Dune", "Huntley", "Landstalker", "Mesa", "Monster", "Monster (A)", "Monster (B)", "Patriot", "Rancher", "Sandking" },
  { "Benson", "Bobvat", "Burrito", "Boxville", "Boxburg", "Cement Truck", "DFT-30", "Flatbed", "Linerunner", "Mule", "Newsvan", "Packer", "Petrol Tanker", "Picador", "Pony", "Roadtrain", "Rumpo", "Sadler", "Sadler ({FF0000}poškodené)", "Topfun",
    "Tractor", "Trashmaster", "Utility Van", "Walton", "Yankee", "Yosemite" },
  { "Ambulance", "Barracks", "Bus", "Cabbie", "Coach", "HPV-1000", "Enforcer", "FBI Rancher", "FBI Truck", "Firetruck", "Firetruck LA", "Police Car ({FF0000}LSPD)", "Police Car ({FF0000}SFPD)", "Police Car ({FF0000}LVPD)", "Ranger", "Rhino", "S.W.A.T.", "Taxi" }
};

Viete mi prosím poradiť, kde je chyba? Ďakujem :)

Link to comment
Share on other sites

12 odpovědí na tuto otázku

Recommended Posts

  • 0

 

new carNames[13][][128] = {

 

~> Ty tři pole jsou takové podivné. Stačí ti 2 a to počet a délka. Počet vozidel je 211, a největší délka jména vozidla je 17(+1). Samozřejmě oba údaje nemusíš zadávat a můžeš ty závorky nechat prázdné, ale podle vEnda je to náchylnější k jistým nefunkčnostem.

Link to comment
Share on other sites

  • 0
  • Hlavní moderátor

 

new carNames[1][13][][128]

 

Tohle ne, pawn nepodporuje čtyři a více dimenzí.

 

~> Ty tři pole jsou takové podivné. Stačí ti 2 a to počet a délka. Počet vozidel je 211, a největší délka jména vozidla je 17(+1). Samozřejmě oba údaje nemusíš zadávat a můžeš ty závorky nechat prázdné, ale podle vEnda je to náchylnější k jistým nefunkčnostem.

3D tam má asi proto, že to má rozdělené do skupin, čili skupina, vozidlo, délka. Edited by vEnd
Link to comment
Share on other sites

  • 0

3D tam má asi proto, že to má rozdělené do skupin, čili skupina, vozidlo, délka.

EDIT: Aha, tak v tom případě moment.

Edited by SkiBig18
Link to comment
Share on other sites

  • 0

[13][][128]

prostřední pole musíš v tomto případě také vyplnit abys stanovil velikost 3D pole

Nebo na jména  vozidel můžeš udělat jen 2D.

Nebo všechny velikosti vyprázdni pokud chceš násilně zabít error.

Link to comment
Share on other sites

  • 0

Jop, já jsem to taky nepochopil zprvu. Nejspíš jde o to, že 3D musí vypadat jako kostka - jako je nečrtnuto v tutoriálu na SAMP fóru:

new carNames[3][][15] = {
	{"radek0-1","radek0-2","radek0-3"},
	{"radek1-1","radek1-2","radek1-3","radek1-4"},
	{"radek2-1","radek2-2","radek2-3"}
};

Tím pádem by v tomto demonstračním případě neměl řádek přečuhovat ven od ostatních. Nebo něco podobného, v tomto případě si zrovna nejsem jistej.

Edited by mxco
Link to comment
Share on other sites

  • 0

Ne. Nejvíc máš 33 stringů v jedné skupině, takže každá skupina musí obsahovat 33 stringů. Dosaď si za ně co chceš, stačí "".

Takže nějak takto

new carNames[13][][128] = {
{ "Pizzaboy", "PCJ-600", "Faggio", "Freeway", "Sanchez", "Quad", "FCR-900", "NRG-500", "HPV-1000", "BF-400", "Wayfarer", "", "", "", .. }, // Dokud tu nebude 33 stringů
{ "BMX", "Bike", "Mountain Bike", "", "", "", "", .. }, // zas dokud tu nebude 33 stringů
....
};

btw, to stejné je i u dvojrozměrného pole.

Například

new hmm[2][5] = {
    "AHOJ"
};
Edited by Lukasz
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...