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

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

21. Almighty - 25 Октября, 2018 - 06:32:50 - перейти к сообщению
 Kibor пишет:
 Almighty пишет:
Подскажите, как можно автоматически выделять и очищать оперативную память ддя работы собраного exe ?
Этого делать не надо. Единственный момент когда память растет без ее автоочищения, это оператор new. Пока сами не удалим delete.
Остальные все функции лояльно используют память.
Если память только растет, то есть проблемы в коде. Не обязательно синтаксические.
(Добавление)
В данном случае хватает много синтаксических.
Про
a;
t;
уже сказали.
Еще одна
CODE:
if (t=1)

Спасибо, исправлю вечером
22. Kensi - 25 Октября, 2018 - 21:02:01 - перейти к сообщению
 Zireael пишет:
Можно заменить это:
CODE:
function del_space(string t){
int aw=size(t);
char a[50];
strcpy(#a[0], t);
t="";
for (int n=0; n<aw; n++){
if (a[n]!=' ')t=t+a[n];
}
return t;
}

На это:
CODE:
function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}


Для примера:
CODE:
string s="1 2 3";
messagebox(s); // с пробелами
s=del_space(s);
messagebox(s); // без пробелов

function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}


спасибо за это)
(Добавление)
 Kibor пишет:
out of memory в основном появляется если не правильно указана область в которой что то ищем или делаем.

Пример
CODE:
int Image_0[5][5];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512];int PosY_0[512];

findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 100, 50, 90, 200, -1);


100, 50, 90, 200 неправильная зона.
По x координата конца зоны меньше начала.
Скрипт выдаст out of memory
Проверяйте эти все
defeatArrayTopX[j], defeatArrayTopY[j], defeatArrayBottomX[j], defeatArrayBottomY[j]
и тд.
Что в них и не выходит ли j за массив не известно.


спасибо за инфу. в моем случае у меня все массивы с точками были точно верные, так как, чтобы избежать подобных ошибок, да и ошибок, связанных с областями для сканирования в принципе, я использовал инструмент выделения, который и показывал координаты, а потом все списывал) моя ошибка была банальна... появлялся бесконечный цикл, из за того, что не было проверки на выход за область массива. Также распознавание текста принимало двоеточие, которое случайно оказывалось на том месте, где должен был быть знак " ! ". Случайность. добавил проверку. и теперь распознаю целое слово, а не один знак. пока работает. Всем спасибо за помощь.

Powered by ExBB FM 1.0 Final