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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
3-23461
Ptr
2002-06-14 15:16
2002.07.08
IBQuery


1-23530
INCOGNITO
2002-06-24 00:34
2002.07.08
Мерцание изображения (TImage


1-23557
sergn
2002-06-25 21:12
2002.07.08
Очистка TTreeView


1-23650
Looser
2002-06-26 08:14
2002.07.08
Есть ли возможность поместить TStrings в ListView.Items?


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





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