Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
15-1138969011
VolanD666
2006-02-03 15:16
2006.02.26
Касперский, что делать?


2-1139316683
Dmitrij_K
2006-02-07 15:51
2006.02.26
Толи меня глючит, толи delphi


3-1135763536
Id
2005-12-28 12:52
2006.02.26
Сверка паролей


9-1125653359
4ECHOK
2005-09-02 13:29
2006.02.26
[3ds, текстурные координаты] Как экспортировать из 3dMAX ?


15-1139380777
TUser
2006-02-08 09:39
2006.02.26
Охрана труда




   Наверх