Проконсультируйте, на сколько не правильно создавать так: что произойдёт с информацией в шестом элементе?
var Form1: TForm1; mas:array[1..5]of TButton; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x:byte; begin x:=6; mas[x]:=TButton.Create(owner); mas[x].Parent:=form1; end;
andriano
20.04.2008 17:47
Шестого элемента в массиве нет. Поэтому "насколько неправильно" быть не может, - это просто "неправильно".
Произойдет порча памяти, т.е. ты будешь пытаться сождать объект в ячсейках памяти, которые предназначены для чего-то другого (чего - пог данному фрагменту восстановить нельзя), в результат как только программа дойдет до обработки того, что должно быть записано в этих ячейках, случится нечто непрогнозируемое. Обычно программа в этом случае вылетает по ошибке, причем диагностика ошибки может не иметь ничего общего с реальностью. Впрочем, если включена проверка на выход за пределы массива, то именно с этой диагностикой программа и вылетит.
Rian
20.04.2008 17:58
Цитата(andriano @ 20.04.2008 13:47)
Произойдет порча памяти,
Спасибо, поставил после массива строку, четыре символа стираются указателем напроч.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.