PDA

Просмотр полной версии : [Вопрос] выход за предел массива



Unreal
09.12.2015, 11:54
Всем привет, можете подсказать в чем ошибка?



[22:18:01] [debug] Accessing element at index 65535 past array upper bound 99
[22:18:01] [debug] AMX backtrace:
[22:18:01] [debug] #0 0002a3e8 in public OnDialogResponse (playerid=5, dialogid=11111, response=1, listitem=12, inputtext[]=@001cb5a0 "") at D:\#Unreal\gamemodes\unreal3.pwn:4522


код:


case 11111:
{
if(!response) return true;
if(Masked[playerid] == F_NULL)
{
if(listitem != 12) SetPlayerSkin(playerid,hskin[listitem]),Masked[playerid] = F_NULL;
else
{
ShowPlayerDialogEx(playerid,11112,DIALOG_STYLE_INPUT, "{1e90ff}Стать похожим на ID"," ВВедите ID игрока на которого хотите стать похожим ","Принять","");
new _g = GetPVarInt(playerid,"_orderedto"),string[66];
if(_g == INVALID_PLAYER_ID)
{
Masked[playerid] = F_NULL;
format(string,sizeof(string),"У вас нет заказа, вы не сможете водить машину %s",FracInfo[PlayerInfo[_g][pMember]][fName]);
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}
Masked[playerid] = PlayerInfo[_g][pMember];
format(string,sizeof(string),"Вы можете водить машину %s",FracInfo[Masked[playerid]][fName]);
SendClientMessage(playerid, 0x6495EDFF, string);
}
return true;
}
SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
return Masked[playerid] = F_NULL;
}


строка 4522

format(string,sizeof(string),"У вас нет заказа, вы не сможете водить машину %s",FracInfo[PlayerInfo[_g][pMember]][fName]);

мне кажется что выход за предела массива тут FracInfo[PlayerInfo[_g][pMember]][fName], но я не понял почему.

Unreal
09.12.2015, 12:55
все я решил, можно закрывать, проблема была в самом коде

Osetin
09.12.2015, 17:01
все я решил, можно закрывать, проблема была в самом коде

Поделитесь с другими пользователями, в чём была ошибка.

VVWVV
09.12.2015, 17:08
Поделитесь с другими пользователями, в чём была ошибка.

Вероятно, у него не было ячейки в массиве FracInfo, поэтому выдавало ошибку. А в самом коде погрешностей вроде бы нет.

А нет… у него совершенно иная ошибка.