Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
14-88636
Baz
2002-04-17 11:18
2002.05.27
Эх.....:(


3-88359
Wildhoney
2002-05-01 04:08
2002.05.27
вопрос


3-88347
АлексейС
2002-04-29 10:25
2002.05.27
Помогите, очень срочно


14-88601
lipskiy
2002-04-18 01:29
2002.05.27
Начат сбор данных для базы процедур и функций сайта delphi.mastak


7-88654
МИФИст
2002-03-02 21:19
2002.05.27
Определение типа протокола...