Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.01 c
6-88580
dmitryK
2002-03-16 18:47
2002.05.27
Надо сделать рассылку сообщений (часто и много)


7-88666
George Wheels
2002-02-28 10:27
2002.05.27
Проблема с IPX/SPX в


1-88549
hex_for_delph
2002-05-15 20:05
2002.05.27
Перевод картинки в текст


14-88608
AFROLOV
2002-04-18 14:53
2002.05.27
Странный глюк


14-88591
Лёха
2002-04-15 16:17
2002.05.27
Хай! Кто-нить знает, как узнать, какие функции есть в dll-ках?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский