Ошибки, баги, вопросы - страница 2494

 
Сергей Таболин:
Роман, прежде, чем поучать, научитесь сами.

Раз вы обращаетесь к сообществу за помощью, то не кто вас поучать не собирается.
Хотел вам помочь, но действительно в глазах уже рябит, и трудно заметно где объявил, где присвоил.
Хоть бы отделил массивы блоками, для читаемости )) ну да ладно, разобрался.
Попробуй в отладчике пройтись по циклам, там виднее будет где засада.

 

@Сергей Таболин 

Какие значения может принимать balance_arr_size?

Как определён balance_arr?

 
Francuz:

@Сергей Таболин 

Какие значения может принимать balance_arr_size?

Как определён balance_arr?

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

Ошибку нашел в заполнении массива.

   // коррекция
   int      correcton_index[3];
   ArrayInitialize(correcton_index,NULL);
            correcton_index[0]   = 1;
            correcton_index[1]   = (int)MathRound(balance_arr_size / 2);
            correcton_index[2]   = balance_arr_size;
   int      correcton_index3[5];
   ArrayInitialize(correcton_index3,NULL);
            correcton_index3[0]  =  1;
            correcton_index3[1]  = (int)MathRound(correcton_index[1] / 2);
            correcton_index3[2]  = correcton_index[1];
            correcton_index3[3]  = (int)MathRound((correcton_index[2] - correcton_index[1]) / 2) + correcton_index[1];
            correcton_index3[4]  = balance_arr_size;
   int      correcton_index7[9];
   ArrayInitialize(correcton_index7,NULL);
            correcton_index7[0]  = 1;
            correcton_index7[1]  = (int)MathRound(correcton_index3[1] / 2);
            correcton_index7[2]  = correcton_index3[1];
            correcton_index7[3]  = (int)MathRound((correcton_index3[2] - correcton_index3[1]) / 2) + correcton_index3[1];
            correcton_index7[4]  = correcton_index3[2];
            correcton_index7[5]  = (int)MathRound((correcton_index3[3] - correcton_index3[2]) / 2) + correcton_index3[2];
            correcton_index7[6]  = correcton_index3[3];
            correcton_index7[7]  = (int)MathRound((balance_arr_size - correcton_index3[3]) / 2) + correcton_index3[3];
            correcton_index7[8]  = balance_arr_size;

Без этого значения получались неверные, но самое интересное что некоторые значения оказались отрицательными. Соответственно, при попытке обращения к элементу массива с индексом [-6] и выскакивал выход за пределы массива.

Надо было изначально всё распринтовать (хотел же) и проверить значения )))

 
Сергей Таболин:

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

Ошибку нашел в заполнении массива.

Без этого значения получались неверные, но самое интересное что некоторые значения оказались отрицательными. Соответственно, при попытке обращения к элементу массива с индексом [-6] и выскакивал выход за пределы массива.

Надо было изначально всё распринтовать (хотел же) и проверить значения )))

Я говорил об источнике. А источник проблемы как раз в этих двух переменных (balance_arr_size и balance_arr) остальной весь код зависим от них.

 
Francuz:

Я говорил об источнике. А источник проблемы как раз в этих двух переменных (balance_arr_size и balance_arr) остальной весь код зависим от них.

Они абсолютно не причём. Ошибка была в расчёте индексов.

 
Сергей Таболин:

Они абсолютно не причём. Ошибка была в расчёте индексов.

Тогда два варианта, или в первом сообщении вы привели откорректированный код, или вы не видите что все индексы определяются через переменную  balance_arr_size?

 
Francuz:

Тогда два варианта, или в первом сообщении вы привели откорректированный код, или вы не видите что все индексы определяются через переменную  balance_arr_size?

Скорректированный код - тремя постами выше. Посмотрите внимательнее, и, надеюсь, сами поймёте, что balance_arr_size никак не может повлиять на ошибку. Ещё раз, по буквам -  О ш и б к а   б ы л а   в   р а с ч ё т е   и н д е к с о в !!!

Или Вы хотите сказать, что я нашёл НЕ ТУ ОШИБКУ ? Присвойте переменной (а в данном контексте, статической переменной) balance_arr_size любое значение и посчитайте на калькуляторе что получается в первом варианте, и что во втором.

Кстати, Вы - уже второй, кто упорно втирает свою правоту. А потом будут заявления: "Ой, я не увидел, ой, не досмотрел..."...

 
Сергей Таболин:

Скорректированный код - тремя постами выше. Посмотрите внимательнее, и, надеюсь, сами поймёте, что balance_arr_size никак не может повлиять на ошибку. Ещё раз, по буквам -  О ш и б к а   б ы л а   в   р а с ч ё т е   и н д е к с о в !!!

Или Вы хотите сказать, что я нашёл НЕ ТУ ОШИБКУ ? Присвойте переменной (а в данном контексте, статической переменной) balance_arr_size любое значение и посчитайте на калькуляторе что получается в первом варианте, и что во втором.

Кстати, Вы - уже второй, кто упорно втирает свою правоту. А потом будут заявления: "Ой, я не увидел, ой, не досмотрел..."...

С такой манерой общения, в следующий раз, свою правоту ищи и отлавливай сам.
В вашем коде вы не показали сколько элементов содержит   balance_arr при  объявлении.
Вам правильно подсказали, проверьте так же объявление массива   balance_arr на количество элементов.
Тут не телепаты чтобы догадываться что там за массив, и как он объявлен. По этому и предлагают возможные места проблем.
Если там всё в порядке, значит действительно проблема была только в расчёте индексации.
И смените пожалуйста свой тон общения.
Чес слово, в следующий раз при такой манере общения, вряд ли кто будет вообще смотреть ваш код.
Удачи.

 
Roman:

С такой манерой общения, в следующий раз, свою правоту ищи и отлавливай сам.
В вашем коде вы не показали сколько элементов содержит   balance_arr при  объявлении.
Вам правильно подсказали, проверьте так же объявление массива   balance_arr на количество элементов.
Тут не телепаты чтобы догадываться что там за массив, и как он объявлен. По этому и предлагают возможные места проблем.
Если там всё в порядке, значит действительно проблема была только в расчёте индексации.
И смените пожалуйста свой тон общения.
Чес слово, в следующий раз при такой манере общения, вряд ли кто будет вообще смотреть ваш код.
Удачи.

Прикольно )))

Это значит я виноват, что некоторым индивидам нужно повторять одно и то же по нескольку раз? И по буквам? Тем более после того как сказал, что нашёл ошибку сам? Пипец! Да если не понимаете русского языка, то лучше и не пытайтесь "помогать".

 
Сергей Таболин:

Прикольно )))

Это значит я виноват, что некоторым индивидам нужно повторять одно и то же по нескольку раз? И по буквам? Тем более после того как сказал, что нашёл ошибку сам? Пипец! Да если не понимаете русского языка, то лучше и не пытайтесь "помогать".

Вы так и не поняли о чём я говорил. Я говорил не об ошибке вашего кода. Я говорил об ошибке выкладывать сюда кусок кода, где два ключевых члена не определены. Источник проблемы в том что вы не привели определение двух ключевых членов и просите о помощи.

Причина обращения: