Главная страница
    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.005 c
1-88554
Ron
2002-05-16 15:05
2002.05.27
TEdit


1-88562
Martyn
2002-05-16 14:29
2002.05.27
QReport - сообщение


14-88638
esprit_bel
2002-04-17 10:25
2002.05.27
Работа с текстом


3-88322
Vladimir V.N
2002-04-30 08:52
2002.05.27
InterBase and Internet Explorer


1-88434
Бывалый
2002-05-17 12:11
2002.05.27
TAdvStringGrid - центрирование ячеек.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский