Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Проблема с ссылками и финкциями

Страниц (1): [1]
 

1. SEGAMEGA - 18 Февраля, 2014 - 16:59:37 - перейти к сообщению
CODE:
function wards (int #kol_obs)
{
int kobs,nobs,nkk,nkk1,nkk2;
nobs=0;
nkk=0;
nkk1=0;
nkk2=0;
kobs=0;
kol_obs[0]=0;
kol_obs[1]=0;
kol_obs[2]=0;
kol_obs[3]=0;
kol_obs[4]=0;
kol_obs[5]=0;
kol_obs[6]=0;
kol_obs[7]=0;
kol_obs[8]=0;
kol_obs[9]=0;
kobs=findimage(-1, #Image_90[0][0], 0, #PosX_90[0], #PosY_90[0], 0, 0, 1600, 1200,20, 20, 20, 20, 20, 20, 70, 1, w); //Obs
sleep(1000);
ciklobs:if (nobs<kobs)
{
ciklobs1:if (nkk<5)
{
if (PosY_90[nkk2]>237+nkk1 && PosY_90[nkk2]<290+nkk1)
{
kol_obs[nkk]=kol_obs[nkk]+1;
}
nkk++;
nkk1=nkk1+53;
goto ciklobs1;
}
nkk=0;
nkk1=0;
ciklobs2:if (nkk<5)
{
if (PosY_90[nkk2]>575+nkk1 && PosY_90[nkk2]<627+nkk1)
{
kol_obs[5+nkk]=kol_obs[5+nkk]+1;
}
nkk++;
nkk1=nkk1+53;
goto ciklobs2;
}
nkk=0;
nkk1=0;
nkk2++;
nobs++;
goto ciklobs;
}

}
int kol_obs1[9];
wards(#kol_obs1[0]);

В общем делал как в инструкции, но при первом запуске, не возвращает интерфейс программы (по идее он не должен зацикливаться), приходится отменять через SHIFT+CTRL+Z, на второй раз выдает ошибку.(для просмотра ссылки Вам необходимо авторизоваться)
Буду очень благодарен если поможете.
2. Kibor - 18 Февраля, 2014 - 17:17:20 - перейти к сообщению
Ошибка.
Выделено 9 элементов
 SEGAMEGA пишет:
int kol_obs1[9];

а
 SEGAMEGA пишет:
kol_obs[9]=0;

десятый. Идет переполнение выделенной памяти.

такой код
 SEGAMEGA пишет:
int kobs,nobs,nkk,nkk1,nkk2;
nobs=0;
nkk=0;
nkk1=0;
nkk2=0;
kobs=0;
kol_obs[0]=0;
kol_obs[1]=0;
kol_obs[2]=0;
kol_obs[3]=0;
kol_obs[4]=0;
kol_obs[5]=0;
kol_obs[6]=0;
kol_obs[7]=0;
kol_obs[8]=0;
kol_obs[9]=0;

так можно
CODE:
int kobs=0,nobs=0,nkk=0,nkk1=0,nkk2=0;
for (int n=0; n<9; n++)kol_obs[n]=0;
3. SEGAMEGA - 18 Февраля, 2014 - 17:41:51 - перейти к сообщению
 Kibor пишет:
Ошибка.
Выделено 9 элементов
 SEGAMEGA пишет:
int kol_obs1[9];

а
 SEGAMEGA пишет:
kol_obs[9]=0;

десятый. Идет переполнение выделенной памяти.

такой код
 SEGAMEGA пишет:
int kobs,nobs,nkk,nkk1,nkk2;
nobs=0;
nkk=0;
nkk1=0;
nkk2=0;
kobs=0;
kol_obs[0]=0;
kol_obs[1]=0;
kol_obs[2]=0;
kol_obs[3]=0;
kol_obs[4]=0;
kol_obs[5]=0;
kol_obs[6]=0;
kol_obs[7]=0;
kol_obs[8]=0;
kol_obs[9]=0;

так можно
CODE:
int kobs=0,nobs=0,nkk=0,nkk1=0,nkk2=0;
for (int n=0; n<9; n++)kol_obs[n]=0;


Т.е. при объявлении надо указывать число от 1 до 10 а при присвоении от 0 ?

Не знал что тут есть цикл for, видел только циклы через cikl: if ... goto cikl; Спасибо )
4. Kibor - 18 Февраля, 2014 - 17:45:59 - перейти к сообщению
 SEGAMEGA пишет:
Т.е. при объявлении надо указывать число от 1 до 10 а при присвоении от 0 ?

int a[5];
a[0]=52;// первый элемент.
a[1]=52;// 2 элемент.
a[2]=52;// 3 элемент.
a[3]=52;// 4 элемент.
a[4]=52;// 5 элемент.
Да.
5. SEGAMEGA - 18 Февраля, 2014 - 18:03:06 - перейти к сообщению
Большое спасибо = )

Powered by ExBB FM 1.0 Final