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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1149150236
Dust
2006-06-01 12:23
2006.08.06
Абра-кадабра в отчёте, FR, Arial (cp Cyrilic), WinXP Rus


2-1153298958
Darkwing
2006-07-19 12:49
2006.08.06
Подключение к MS SQL


3-1148966505
WG
2006-05-30 09:21
2006.08.06
SQL выборка из таблицы с датами последнего изменения


2-1152877100
learner
2006-07-14 15:38
2006.08.06
Установление коннекта между NamedPipe-ми по сети.


15-1152482781
Gero
2006-07-10 02:06
2006.08.06
Ругань в тематических конференциях