Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.035 c
6-1143027284
Dysan
2006-03-22 14:34
2006.08.06
длина строки с параметрами в TidHttp


15-1152129774
Имя не скажу
2006-07-06 00:02
2006.08.06
Проблема больших целых чисел


15-1152183944
KaLLeKa
2006-07-06 15:05
2006.08.06
Научите дурака)


8-1139150998
guitarist
2006-02-05 17:49
2006.08.06
ScreenMate


3-1148719079
Micker2
2006-05-27 12:37
2006.08.06
Вывод на печать в виде таблицы




   Наверх