Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.028 c
14-1092349974
Profi
2004-08-13 02:32
2004.08.29
Helkern


14-1088092497
OSokin
2004-06-24 19:54
2004.08.29
Новый сайт


1-1092416192
Gnec
2004-08-13 20:56
2004.08.29
Как сделать подсветку


1-1092397171
Mitrofan
2004-08-13 15:39
2004.08.29
Отдельную форму в dfm формате открыть в прложении


3-1091797083
Zelius
2004-08-06 16:58
2004.08.29
Будущее Jet





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