Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Возникает ошибка при заполнении массива данными
AndRRR
Отправлено: 18 Июля, 2016 - 21:03:24
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  
Репутация: 0




Добрый день.
В своем скрипте я использую несколько двухмерных массивов, данные в них вношу непосредственно из скрипта (int A[10][10]; A[1][1]=100; A[1][2]=200; и т.д.)
После внесения определенного количеств данных начинает выскакивать ошибка Microsoft visual c++ debug library, программа Kibor вылетает.
Интересная особенность ошибки в том, что, похоже, есть некоторое количество данных, которое я мог задать таким способом без ошибки; а стоит добавить еще одно число в массив - сразу вылет.
 
 Top
Kibor
Отправлено: 18 Июля, 2016 - 21:24:34
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8189
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




в
 AndRRR пишет:
int A[10][10]; A[1][1]=100; A[1][2]=200;

я не вижу ошибок, не считая того что начало массива... A[0][0]=100;
а вот в
 AndRRR пишет:
и т.д.

не знаю..
там нет случайно
A[10][10]=......;
??
 
 Top
AndRRR
Отправлено: 18 Июля, 2016 - 22:20:14
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  
Репутация: 0




Есть массивы для координат маршрута

int peace_point_x[10][40], peace_point_y[10][40];// Координаты по х, у; 1-10-номер маршрута, 1-20-номер координаты
int peace_UP[10][40], peace_RIGHT[10][40], peace_DOWN[10][40], peace_LEFT[10][40];// Движения стрелки
int peace_map_number[10][40];// Номер миникарты

Заполняю их

int m, k;// Переменные для маршрутов
m=6;
k=1; peace_point_x[m][k]=718; peace_point_y[m][k]=140; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=2; peace_point_x[m][k]=718; peace_point_y[m][k]=120; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
и т.д.

k=13; peace_point_x[m][k]=726; peace_point_y[m][k]=144; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=14; peace_point_x[m][k]=726; peace_point_y[m][k]=124; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=15; peace_point_x[m][k]=726; peace_point_y[m][k]=104; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;

И точке №15 выскакивает ошибка.

Если я удалю из скрипта
k=14; peace_point_x[m][k]=726; peace_point_y[m][k]=124; peace_UP[m][k]=0; peace_RIGHT[m][k]=0; peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
или любую другую точка маршрута - ошибки нет. Но чтобы записать №16, нужно еще что-то удалить. В общей сложности таким образом в 18 двухмерных массивах забиты порядка 200-250 чисел.
(Добавление)
Да, насчет А[10][10], все массивы объявлены с запасом и за их пределы я не выхожу.
(Добавление)
Погуглил на тему damage after normal block (именно это выскакивает в ошибке, и еще # c указанием на какую-то ячейку памяти).
Пишут про переполнение буфера, динамическое выделение и освобождение памяти и проч.
В при использовании программы Kibor есть какое-то ограничение на этот счет?

(Отредактировано автором: 18 Июля, 2016 - 22:22:02)

 
 Top
Kibor
Отправлено: 18 Июля, 2016 - 23:16:09
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8189
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




CODE:
int peace_point_x[10][40], peace_point_y[10][40];// Координаты по х, у; 1-10-номер маршрута, 1-20-номер координаты
int peace_UP[10][40], peace_RIGHT[10][40], peace_DOWN[10][40], peace_LEFT[10][40];// Движения стрелки
int peace_map_number[10][40];// Номер миникарты


int m, k;// Переменные для маршрутов
m=6;
k=1; peace_point_x[m][k]=718; peace_point_y[m][k]=140; peace_UP[m][k]=0; peace_RIGHT[m][k]=0;
peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=2; peace_point_x[m][k]=718; peace_point_y[m][k]=120; peace_UP[m][k]=0; peace_RIGHT[m][k]=0;
peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
и т.д.

k=13; peace_point_x[m][k]=726; peace_point_y[m][k]=144; peace_UP[m][k]=0; peace_RIGHT[m][k]=0;
peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=14; peace_point_x[m][k]=726; peace_point_y[m][k]=124; peace_UP[m][k]=0; peace_RIGHT[m][k]=0;
peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;
k=15; peace_point_x[m][k]=726; peace_point_y[m][k]=104; peace_UP[m][k]=0; peace_RIGHT[m][k]=0;
peace_DOWN[m][k]=0; peace_LEFT[m][k]=0; peace_map_number[m][k]=1;

messagebox (peace_map_number[m][k]);

нормально срабатывает..
(Добавление)
 AndRRR пишет:
при использовании программы Kibor есть какое-то ограничение на этот счет?

нет. Память выделяется столько сколько указано в скрипте.

но есть ограничение длины строки кода..
не пишите в одну строку длинную.
но тут не в этом дело..
(Добавление)
Для такого заполнения удобно использовать чтение с файла..
 
 Top
AndRRR
Отправлено: 19 Июля, 2016 - 20:22:04
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  
Репутация: 0




Да в общем я уже через чтение из файла реализовал, перезаписываю один массив, раньше руки никак не доходили заняться.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by