Как сделать динамический массив постоянным?
Есть ли способ сделать константу массива х после того, как данные прочитаны пользователем? Есть ли способ сделать переменную неизменяемой после того, как ее значение прочитано пользователем (например, y)?
program hmm;
uses crt;
var
i, y: word;
x: array of word;
begin
readln(y);
y:=y-1;
SetLength(x,y);
for i := 0 to y do begin
read(x[i]);
end;
readkey;
end.
Чтобы сделать у постоянным, я попробовал что-то вроде этого, но это не сработает - у будет установлено значение 0.
program hmm;
uses crt;
var
i: word;
x: array of word;
const
{$J+}
y:word = 0;
{$J-}
begin
{$J+}
readln(y);
y:=y-1;
{$J-}
y:=0;
SetLength(x,y);
for i := 0 to y do begin
read(x[i]);
end;
readkey;
end.
Спасибо за помощь.
1 ответ
Решение
Да. Не изменяйте ни один из них в своем коде после того, как вы установили начальное значение.
Кроме этого, нет пути. Динамический массив по определению является изменяемым, как и переменная, поэтому они имеют динамические и переменные в качестве имен.