Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];
ВнизInvalid floating point operation. Не могу разобраться Найти похожие ветки
← →
adav (2002-05-15 11:28) [0]Периодически возникает ошибка "invalid floating point operation". Подозрение на то, что программа криво работает с динамическими массивами.
Есть примерно следующее:
var
Form1: TForm1;
rr:array of real; //вначале объявляем одномерный массив
implementation
...
procedure TForm1.Button2Click(Sender: TObject);
begin
...
rr:=nil; //обнуляем его
setlength (rr, m); //присваиваем ему размерность m
...
Причем ошибка то вываливается, то нет. Проект работает только если запускать из Delphi. Отдельно exe-шник не хочет вообще работать, сразу вываливая данную ошибку. Разгребаю второй день, помогите пожалуйста, если знаете!
Заранее спасибо!
← →
Внук (2002-05-15 11:39) [1]Нет здесь проблемы, а что дальше происходит с rr ?
← →
Paxer (2002-05-15 11:46) [2]Проверь, не выходишь ли где либо за пределы массива, обращение по rr[Length(rr)] - ошибочно. Также нельзя обращаться по вычисленным адресам массива, т.к. Addr(rr) и Addr(rr[0]) - разные вещи. После обращений по таким адресам, как я понимаю, затирается информация о размере массива и происходит еще неизвестно что.
← →
adav (2002-05-15 12:23) [3]2 Внук:
Иногда вылетает ошибка на это:
rr[i]:=sqrt(rr[i]);
Иногда на другие операции с массивами. Но проблема в том, что отладчик (view CPU) показывает именно процедуру DynArrayClear(?).
2 Paxer:
"обращение по rr[Length(rr)] - ошибочно". Это понятно, да и выдавал бы он тогда что-то вроде "index out of bounds" или вроде того.
Главное, что иногда проходит все прилично, а повторный раз (еще одно нажатие на кнопку и пересчет параметров) не хочет работать. Только если делфу остановить и заново запустить. А сам exe-файл без среды делфи вообще сразу ругается.
← →
Paxer (2002-05-15 12:39) [4]<<да и выдавал бы он тогда что-то вроде "index out of bounds" - ничего Делфи не выдаст, прочитай раздел в Хелпе. Проверь,не используешь ли этот массив в качестве буфера при считывании или записи данных (из потока, из файла), если да - то это и есть ошибка. Я с этим про.. больше недели. Если можешь, ответь на мой вопрос в форуме по TAction.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c