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