Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Arrays   Найти похожие ветки 

 
Nobody_1988   (2006-07-16 00:01) [0]

...
Map : array of array of integer;
...

procedure ...

SetLength(Map, 100, 100);

end.

Почему можно обратиться к элементам которых по идее нет
например - Map[99, -???] и к Map[99, ???]... глюк? или я что-то не понял...

Delphi 7.


 
S@shka ©   (2006-07-16 00:07) [1]

Разве SetLEngth (100) не деалет массив с индексами от 0 ... 99 ??


 
DrPass ©   (2006-07-16 00:38) [2]


> Почему можно обратиться к элементам которых по идее нет
>
> например - Map[99, -???] и к Map[99, ???]... глюк? или я
> что-то не понял...

Пока отключен Range cheсking, Delphi контроль за границами массивов оставляет целиком на твоей совести. Это не сложно, поверь :) А если сильно давит на сознание, включи Range Cheсking в настройках компилятора...


 
Nobody_1988   (2006-07-16 00:47) [3]

Разве SetLEngth (100) не деалет массив с индексами от 0 ... 99 ??

Можно обратиться например к Map[99, -400], но нельзя к Map[-400, 23]...


 
Nobody_1988   (2006-07-16 01:22) [4]

Пока отключен Range cheсking, Delphi контроль за границами массивов оставляет целиком на твоей совести. Это не сложно, поверь :) А если сильно давит на сознание, включи Range Cheсking в настройках компилятора...

Map[i, j]

Тоесть контроль за элементом i включен, а за элементом j нет?


 
DrPass ©   (2006-07-16 02:03) [5]


> Тоесть контроль за элементом i включен, а за элементом j
> нет?

Map - это массив массивов. В первом случае ты обращаешься к несуществующему элементу существующего массива, а во втором случае - к элементу несуществующего массива.


 
DrPass ©   (2006-07-16 02:08) [6]

Впрочем, "можно обратиться" - это громко сказано :) Просто в первом случае вероятность Access Violation не 100% - а как повезет в зависимости от состояния того блока памяти, куда ты залез, а во втором - 100%.
А с опцией Range Checking тебе не дадут обратиться к несуществующему элементу. Т.е. ты получишь всегда возникающую в таких непотребных случаях Range Check Error.


 
Ketmar ©   (2006-07-16 13:10) [7]

что обидно -- Range Checking влияет ещё и на арифметику. с ходу не вспомню, но натыкался на это: при переполнении целых (Integer) вылазило исключение. я громко ругался матом. %-)


 
Amoeba ©   (2006-07-17 12:03) [8]


> Ketmar ©   (16.07.06 13:10) [7]
> что обидно -- Range Checking влияет ещё и на арифметику.
>  с ходу не вспомню, но натыкался на это: при переполнении
> целых (Integer) вылазило исключение. я громко ругался матом.
>  %-)

Надо не обижаться, а благодарить за помощь.



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

Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
2-1153484990
Itonixxx
2006-07-21 16:29
2006.08.06
Работа со строками


2-1152879733
-=Germe$=-
2006-07-14 16:22
2006.08.06
Вопрос связан с перехватом времени


2-1153375514
rosl
2006-07-20 10:05
2006.08.06
формат 1С


15-1152469887
Andy BitOff
2006-07-09 22:31
2006.08.06
Что почитать по XML?


3-1149238320
jiny
2006-06-02 12:52
2006.08.06
Как программно добавлять/изменять польз.сервера, изменяя им роли





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