Добрый день.
В своем скрипте я использую несколько двухмерных массивов, данные в них вношу непосредственно из скрипта (int A[10][10]; A[1][1]=100; A[1][2]=200; и т.д.)
После внесения определенного количеств данных начинает выскакивать ошибка Microsoft visual c++ debug library, программа Kibor вылетает.
Интересная особенность ошибки в том, что, похоже, есть некоторое количество данных, которое я мог задать таким способом без ошибки; а стоит добавить еще одно число в массив - сразу вылет.
1. AndRRR - 18 Июля, 2016 - 13:03:24 - перейти к сообщению
2. Kibor - 18 Июля, 2016 - 13:24:34 - перейти к сообщению
в
я не вижу ошибок, не считая того что начало массива... A[0][0]=100;
а вот в
не знаю..
там нет случайно
A[10][10]=......;
??
AndRRR пишет:
int A[10][10]; A[1][1]=100; A[1][2]=200;
я не вижу ошибок, не считая того что начало массива... A[0][0]=100;
а вот в
AndRRR пишет:
и т.д.
не знаю..
там нет случайно
A[10][10]=......;
??
3. AndRRR - 18 Июля, 2016 - 14:20:14 - перейти к сообщению
Есть массивы для координат маршрута
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 есть какое-то ограничение на этот счет?
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 есть какое-то ограничение на этот счет?
4. Kibor - 18 Июля, 2016 - 15:16:09 - перейти к сообщению
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]);
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 есть какое-то ограничение на этот счет?
нет. Память выделяется столько сколько указано в скрипте.
но есть ограничение длины строки кода..
не пишите в одну строку длинную.
но тут не в этом дело..
(Добавление)
Для такого заполнения удобно использовать чтение с файла..
5. AndRRR - 19 Июля, 2016 - 12:22:04 - перейти к сообщению
Да в общем я уже через чтение из файла реализовал, перезаписываю один массив, раньше руки никак не доходили заняться.