|
А ывяснить придется чисто логическим путем. Можно, опять же, для начала организовать проверку индекса. Можно изменить положение массива или переменной в памяти. Тогда будет видно из-за чего все это происходит.
Если от перемены мест слагаемых сумма не изменится, тогда дело будет в индексе. Если будут затираться другие данные, значит дело не в нем. Возможно, эти данные окажутся рядом со стеком, тогда надо отследить изменение стека.
То, что событие происходит редко, весьма симптоматично. Возможно, это переполнение стека, которое возникает при прерываниях. Обычно это происходит, когда в функциях (или хотя бы в одной) имеется много локальнвх переменных, или массив. Можно уменьшить потребность в стеке, если эти переменные сделать статическими. Можно наоборот, попробовать увеличить размер стековой области.
Да много есть способов разных. Думаю, Вы это и сами знаете не хуже меня.
E-mail: info@telesys.ru