что произойдёт с информацией в шестом элементе?
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;
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Динамическое создание объекта |
Rian |
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: 9 |
Проконсультируйте, на сколько не правильно создавать так:
что произойдёт с информацией в шестом элементе? var -------------------- Objective-C, Unity3d
|
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Шестого элемента в массиве нет.
Поэтому "насколько неправильно" быть не может, - это просто "неправильно". Произойдет порча памяти, т.е. ты будешь пытаться сождать объект в ячсейках памяти, которые предназначены для чего-то другого (чего - пог данному фрагменту восстановить нельзя), в результат как только программа дойдет до обработки того, что должно быть записано в этих ячейках, случится нечто непрогнозируемое. Обычно программа в этом случае вылетает по ошибке, причем диагностика ошибки может не иметь ничего общего с реальностью. Впрочем, если включена проверка на выход за пределы массива, то именно с этой диагностикой программа и вылетит. Сообщение отредактировано: andriano - |
Rian |
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: 9 |
Произойдет порча памяти, Спасибо, поставил после массива строку, четыре символа стираются указателем напроч. -------------------- Objective-C, Unity3d
|
Текстовая версия | 29.03.2024 4:52 |