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

Вниз

А почему собственно ???   Найти похожие ветки 

 
Skier ©   (2002-06-25 14:13) [0]

procedure TForm1.Button1Click(Sender: TObject);
var
A : array of array of Integer;
begin
SetLength(A,10);
SetLength(A[1],3);
A[1, 9] := 100; //почему проходит эта строка ??????
end;

Сразу говорю, что в настройках Exception-ы у меня включены.
В чём же дело товариши ?! Просто стало интересно...


 
aus ©   (2002-06-25 14:16) [1]

Она наверное просто игнорируется, ты по шагам попробуй...


 
MBo ©   (2002-06-25 14:18) [2]

project-options-compiler-range checking включил?


 
Skier ©   (2002-06-25 14:19) [3]

> aus
Я по всякому её пытал.

Очень всё-таки интересно почему если память не выделена под
A[1, 9] , то Exception не генерится ?!


 
Skier ©   (2002-06-25 14:21) [4]

> MBo
Всё понял. Спасибо.

Вопрос снят.


 
MBo ©   (2002-06-25 14:23) [5]

при отключенном range checking это может пройти, если указанный адрес "разрешенный", т.е. входит в отведенное программе АП

а вот так попробуй
A[1, 11111119] := 100;// при некотором числе возникнет AV


 
Skier ©   (2002-06-25 14:29) [6]

> MBo
Ага. Точно.
Спасибо ещё раз.


 
PVOzerski ©   (2002-06-25 14:34) [7]

>при отключенном range checking это может пройти, если указанный
>адрес "разрешенный", т.е. входит в отведенное программе АП
Только можно ненароком, например, другой переменной значение "подправить" (особенно красиво получается в глобальных статических массивах, тогда мы работаем не с хипом, а с сегментом данных, поэтому получить exception оказывается сложнее - только если вылетишь за его пределы. Отлаживать - мечта...). Также душевно выходит вылезание за границы выделенного блока "на чуть-чуть", особенно, если длина этого блока определяется at run time и заранее неизвестна - тогда получается то exception, то всё OK (отчасти за счет выравнивания блока выделяемой памяти на DWORD на уровне API, отчасти по неведомым причинам). В общем, осторожность нужна и аккуратность.



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

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
14-23793
ArochGL
2002-06-05 08:21
2002.07.08
Находка


14-23728
PTE
2002-06-05 20:26
2002.07.08
дайте плиз русский хелп к RxDrawGrid?


6-23694
Dmitriy_0
2002-04-25 10:32
2002.07.08
Как работать со своим SMTP ?


1-23588
zam
2002-06-24 17:44
2002.07.08
Как изменить цвет или границу выделенного элемента в listview


1-23543
antonioxxx
2002-06-26 16:13
2002.07.08
Как избавиться от Synchronize?