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

Вниз

Проблемы с динамическими массивами   Найти похожие ветки 

 
Fanny   (2005-07-05 07:56) [0]

У кого-нибудь были?
В частности при изменении длины.


 
<Falcon>   (2005-07-05 09:18) [1]

А так чтобы было понятно? Какие могут быть проблемы с массивами?
Для изменения длины  массива - SetLength(arrayname,newlength)
И какое это отношение имеет к KOL?


 
Fanny   (2005-07-05 09:30) [2]

есть три массива (динамических)
A,B,C : array of integer; // глобальный
i : integer;              // локальная
при наращивании:
inc(i);
SetLength(A,i);
SetLength(B,i);
SetLength(C,i);
всё нормально, а при уменьшении
dec(i);
SetLength(A,i);
SetLength(B,i);
SetLength(C,i);
первый раз проходит нормально, второй раз приложение завершается.
пошаговое выполнение показывает, что завершение наступает после нажатия F8, когда курсор (синяя полоса) выделяет SetLength(B,i);
приложение завершается без каких-либо сообщений об ошибке.
связано ли это с Range checking ?
почему первый раз проходит нормально ?
зависит ли это от версии KOL и Delphi ?
как можно достоверно узнать что происходит в мосент завершения программы (отловить выход) ?


 
Davlegov   (2005-07-06 00:47) [3]

i<0 ?


 
Fanny   (2005-07-06 07:55) [4]

пересоздал проект (вечер и ночь)
всё тоже самое, только теперь глючит при НАРАЩИВАНИИ массива
как вообще это может быть?


 
MTsv DN   (2005-07-06 09:19) [5]

>>как вообще это может быть?
Использовать статический массив...

У меня была такая проблема. Сканирование дерева каталогов и запись в динам. массив файлов с определенным расширением. Так вот приработе с SetLength происходил сбой, причем когда будет сбой неизвестно... Сечас использую статику, до тех пор пока не найду как исправить глюк.

P.S. Вообще-то, эта тема к KOL не имеет никакаго отношения...
2 Fanny
И на "Основном" форуме, и на форуме "WinAPI" эту темы уже рассматривали...

С Уважением MTsv DN


 
MTsv DN   (2005-07-06 09:24) [6]

2 Fanny
Почитай вот это:
http://delphimaster.net/view/1-1120570960/

С Уважением MTsv DN


 
Fanny   (2005-07-06 16:54) [7]

Дело в том , что если проект упрощённо перенести на VCL, то всё работает. Трассировка показала, что сбой происходит при вызове DynArraySetLength перед ret. Причём такая беда только в KOL. На VCL - всё ОК. Наверное действительно придётся перейти на статику.


 
ECM ©   (2005-07-06 17:00) [8]

>если проект упрощённо перенести на VCL, то всё работает
я так понимаю, что упрощение идет с КОЛ-проекта...
... а если точно так же упростить в КОЛ? - не верю что не будет работать... можете выслать мне на мыло такой НЕ РАБОТАЮЩИЙ КОЛ-проект...
тут дело в другом (усложняющем) коде...ИМХО


 
GMax   (2005-07-07 23:38) [9]

я ловил подобный глюк. причём в 5 дельфях глючило, а в 7 - нет (или наоборот - не помню). глючило при присвоении текста хинтам MCKmdvToolTip.
глюк живёт внутри заменённых системных библиотек. где точно, надо трассировать, сейчас не помню.
в одной из них есть проверка регистра на ноль, а в другой нету.
вылечивалось принудительным присвоением регистра в самом начале dpr:
[...]
begin
asm xor edi, edi; end;
{$IFDEF KOL_MCK} {$I prog_0.inc} {$ELSE}
[....]



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
15-1137225791
ferr
2006-01-14 11:03
2006.02.26
XP64


2-1139154304
parovoZZ
2006-02-05 18:45
2006.02.26
Ошибка при добавлении записи


1-1138380714
man Yurik
2006-01-27 19:51
2006.02.26
Delphi+MSWord


2-1139278380
Интересующийся
2006-02-07 05:13
2006.02.26
Вопрос про TServerSocket


2-1139063830
Fl@sh
2006-02-04 17:37
2006.02.26
CryptoApi