Форум: "Начинающим";
Текущий архив: 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.011 c