Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизРабота с динамическим массивом Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c