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

Вниз

Работа с динамическим массивом   Найти похожие ветки 

 
Tex   (2004-08-11 13:22) [0]

Ув.мастера, с чем может быть связана такая ошибка. В цикле формируется динамический массив N: array of Word.
Выглядит это так:

начало цикла
.
.
определяется L-длина массива
SetLength(N,L);
.
.
.
N := nil;
конец цикла

L никогда не равно 0. При этом, если в массив N вносился хотя бы один ненулевой элемент, все проходит нормально.
В противном случае при попытке выполнить N := nil выдается ошибка "Invalid pointer operation".


 
Ega23 ©   (2004-08-11 13:26) [1]

SetLength(N,0) ?


 
KSergey ©   (2004-08-11 13:27) [2]

Вообще-то, лучше бы поправдишный код

Но приведенному:
1) зачем N := nil;? все равно потом будет SetLength(N,L) с новой длиной
2) А индексы какие берем при доступе к элементам массива? 0..L-1 или иные?


 
Tex   (2004-08-11 13:43) [3]

1) L <> 0, там есть проверка.
2) Индексы берем от 0 до L-1. Даже если в цикле N:=nil не выполнять, то по окончанию цикла это все равно надо сделать.


 
Ega23 ©   (2004-08-11 13:45) [4]

Тебе сказали: приведи весь код


 
GrayFace ©   (2004-08-11 14:31) [5]

Tex   (11.08.04 13:43) [3]
> Даже если в цикле N:=nil не выполнять, то по окончанию
> цикла это все равно надо сделать.

Почему?
Если все-таки надо, то SetLength(N,0) эквивалентно N:=nil, только глючить не будет.



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

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

Наверх




Память: 0.47 MB
Время: 0.064 c
3-1091447741
DSKalugin
2004-08-02 15:55
2004.08.29
Агрегатные функции со строками AVG(), min(),max()...


14-1092056709
SaneK
2004-08-09 17:05
2004.08.29
ПОМОГИТЕ ПЛИЗ!!!


1-1092510274
GreySerg
2004-08-14 23:04
2004.08.29
Как заменить содержимое файла, открываемого с помощью TFileStream


3-1091794517
Nikolai_S
2004-08-06 16:15
2004.08.29
Можно ли хранить в таблице MS Access картинки?


3-1091776227
Piero
2004-08-06 11:10
2004.08.29
Как добавить столбец в таблицу