2D Array - initialization data exceeds declared size

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • new GW_Name[83][1] =
    {
    {"Glen Park"},
    {"Upper Grove"},
    {"Grove Street"},
    {"Car Wash"},
    {"LSPD Headquarters"},
    {"LS Medical Center"},
    {"Ferris Wheel"},
    {"Vinewood"},
    {"Filmstudios"},
    {"Fuel Station"},
    {"Tram Station"},
    {"Burger Shot LS North"},
    {"LS Parking Lot"},
    {"Walk of Fame"},
    {"LS Mall"},
    {"LS Beach Canal"},
    {"The Pig Pen Brothel"},
    {"Complex of Buildings"},
    {"Fashion Corner"},
    {"Lighthouse"},
    {"Vinewood Barracks"},
    {"LS North-East Building"}, //could use a rename
    {"Tram Barracks"},
    {"LS Airport"},
    {"Mansion"},
    {"Ammunation LS Canals"},
    {"Leisure Center"},
    {"LS Docks Canals"},
    {"LS Southside Bridge"},
    {"LS Cluckin' Bell Quarters"},
    {"LS Docks"},
    {"LS South-East Beach Quarters"},
    {"SF Building Lot"},
    {"Wang Cars"},
    {"SF Warehouse Area"},
    {"SF Baseball Quarters"},
    {"Missionary Hill"},
    {"Foster Valley"},
    {"SF Airport"},
    {"SF Industrial"},
    {"SF Harborside"},
    {"SF Ship"},
    {"Hippie Quarters"},
    {"SF West Beach Quarters"},
    {"SF Hotel"},
    {"SFPD Headquarters"},
    {"SF Government"},
    {"SF Medical Center"},
    {"SF North-West Quarters"},
    {"China Town"},
    {"Snake Road"},
    {"Pier 69"},
    {"Otto's Autos"},
    {"SF Skyscrapers"},
    {"SF North Quarters"},
    {"Gant Bridge Diner and Museum"},
    {"Bayside"},
    {"Whetstone Small Farm"},
    {"Whetstone Grand Farm"},
    {"Hilltop Farm"},
    {"Come-A-Lot"},
    {"The High Roller"},
    {"The Visage"},
    {"LVPD Headquarters"},
    {"LV Parkhouse"},
    {"LV Grand Building Lot"},
    {"Four Stairs Building"},
    {"LV Building Lot South-West"},
    {"LV Airport Freight Depot"},
    {"LV North Quarters"},
    {"LV East Quarters"},
    {"LV Church"},
    {"Redsands Xoomer District"},
    {"Sumo"},
    {"LV Motel"},
    {"Whitewood Estates"},
    {"Oil Fields Industrial"},
    {"Fort Carson"},
    {"Satellite Station"},
    {"Area 51"},
    {"Las Payasadas"},
    {"Tierra Robada Building"},
    {"Ghost Town"}
    };


    error 018: initialization data exceeds declared size


    Es liegt am zweiten Wert im 2D Array. Wenn ich da eine 1 reinschreibe, dann spuckt er mir diesen Fehler aus. Wenn ich eine 0 reinschreibe, kompiliert alles, aber eine 0 macht für mich keinen Sinn, da es ja keine 0 Spalten, sondern 1 Spalte ist...


    ___________________________________________________________________________________________________________________________________________________________________________________________________________


    Oh man, ich stand aufm Schlauch. Das richtet sich bei einem string ja nach Anzahl der characters. -.-


    Hat sich geklärt.

    Einmal editiert, zuletzt von Manyula ()

  • Dynamisch ist das Ganze dadurch auch nicht. Himmel, wer hat euch allen blos dieses Wort falsch beigebracht :D


    Wenn du keine Arraygröße bei der Deklaration angibst, ermittelt er sich die selber. Verändern lässt sich das im Nachhinein trotzdem nicht mehr, also ist es auch nicht dynamisch ;)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Wenn du feste Größen nimmst wird der Speicher praktisch bis dahin reserviert. So kannst du während der Laufzeit auf diese reservierten Speicher zugreifen.
    Wenn du die Größe nicht definierst ermittelt Pawn die Größe dieser Variable selber und überträgt diese Information in den später kompilierten Code.


    Würdest du versuchen während der Laufzeit auf einen Index zurückzugreifen der nicht im Speicher reserviert ist könnte es leicht passieren dass du damit auf einen Teil im Speicher zugreifst der bereits von einem anderen Teil reserviert wurde bzw. nicht vorhanden ist.



    new array[2][2] = { {1,1}, {2,3} };
    new var = 5;




    Würde so aussehen




    array[0] -> [277802] - > [1]
    -> [277803] - > [1]
    array[1] -> [277804] - > [2]
    -> [277805] - > [3]
    var -> [277806] - > [5]


    würdest du nun versuchen nun auf array[2] zuzugreifen würdest du versuchen einen Zeiger aufzurufen der nicht existiert und auch keinen gültigen Zugriff im Speicher hat.



    genau das Gleiche beim zuweisen einer variable, wenn ich versuchen würde var einen String Wert zu übermitteln :


    var = "Hallo Welt";


    var -> [277806] - > [H]
    -> [277807] - > [Fehler]


    var hat praktisch nur die Größe die bei der Definition festgelegt wurde, der Zugriff in den Bereich danach bleibt dieser Variable verwehrt da dieser wieder anderweitig reserviert ist, wenn solch ein Zugriff ausgeführt wird kommt es zu schweren Fehlern im Speicher und es gehen Daten verloren.


    Entschuldige den langen Roman aber ich denke so ist es verständlich genug :D

    Mfg. BlackFoX_UD_ alias [BFX]Explosion