Jump to content
  • 0

Array of index out of bounds


newbie.

Question

Problema intalnita (descriere): Array of index out of bounds.
Ero(area / rile) / warning-(ul / urile):

[12:05:27] [debug]  Accessing element at index 49 past array upper bound 48
[12:05:27] [debug] AMX backtrace:
[12:05:27] [debug] #0 00051f28 in public SetPlayerUnjail () at C:\Users\Alex\Desktop\vx-rp edit\gamemodes\vx-rp.pwn:6411

Liniile de cod / sursa / script-ul(obligatoriu):

for(new iGroup; iGroup < MAX_GROUPS; iGroup++)
    {
            if(groupVariables[iGroup][gDeelay] >= 1)
            {
                   groupVariables[iGroup][gDeelay]--;
                }
    }
    for(new i = 0; i <= sizeof(TurfInfo); i++)
    {
        new string[56], count = 0; // <--- asta e linia
        new att = WarInfo[i][wAttacker];
        new deff = WarInfo[i][wFaction];
        if(WarInfo[i][wTime] > 0)
        {


Imagini / Video (optional): -.
Ati incercat sa rezolvati singur?: Da.

 

Edited by newbie.
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Ia pune new string[256];

 

Ca sa-ti explic, acea eroare iti spune ca string-ul are o valoare mica iar tu l-ai folosit intr-o functie in care este depasita valoarea pusa de tine , adica 56 . Incearca sa o maresti la 256 , daca nici asa pune 512 .

 

 

P.S : Scuza-ma, abia acum am vazut ca ai si semnalizat linia ... greseala mea .

Edited by NoNamed
Link to comment
Share on other sites

  • 0

Ia pune new string[256];

 

Ca sa-ti explic, acea eroare iti spune ca string-ul are o valoare mica iar tu l-ai folosit intr-o functie in care este depasita valoarea pusa de tine , adica 56 . Incearca sa o maresti la 256 , daca nici asa pune 512 .

era pusă 256, o să încerc cu 512 și revin cu edit.

//edit - nu mai dă la linia aia, dar acum dă la următoarea, adică la 

new att = WarInfo[i][wAttacker];

 

Edited by newbie.
Link to comment
Share on other sites

  • 0

In loc de

for(new i = 0; i <= sizeof(TurfInfo); i++)

pune

for(new i = 0; i < sizeof(TurfInfo); i++)

sizeof iti da numarul de elemete din vector plecand de la 1, nu de la 0 cum incep vectorii. Conditia da cu <= accesa un element invalid din acel vector si de asta primeai eroare.

Link to comment
Share on other sites

  • 0

In loc de

for(new i = 0; i <= sizeof(TurfInfo); i++)

pune

for(new i = 0; i < sizeof(TurfInfo); i++)

sizeof iti da numarul de elemete din vector plecand de la 1, nu de la 0 cum incep vectorii. Conditia da cu <= accesa un element invalid din acel vector si de asta primeai eroare.

tot aia îmi dă (array of index out of bounds), la aceași linie 

new att = WarInfo[i][wAttacker];

 

Link to comment
Share on other sites

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.