Размер статического массива должен быть известен заранее, а чтобы сделать то, что ты хочешь, нужен динамический массив. Твой метод в этом случае не годится. Вот как это надо делать…
Код:
uses crt;
type
mas = array[1..1] of char;
mat = array[1..1] of ^mas;
var
matrica : ^mat;
massive : ^mas;
i, j : integer;
begin
clrscr;
GetMem( massive, sizeof(char)*12 );
for i := 1 to 12 do
massive^[i] := chr( ord('0') + i);
for i := 1 to 12 do
writeln( massive^[i] );
freemem( massive, sizeof(char)*12 );
GetMem( matrica, sizeof( pointer )*10 ); { n = 10 }
for i := 1 to 10 do
GetMem( matrica^[i], sizeof(char)*20 ); { m = 20 } { matrica[1..n,1..m] }
for i := 1 to 10 do
for j := 1 to 20 do
matrica^[i]^[j] := chr( ord('0') + (i-1)*20+j );
for i := 1 to 10 do
begin
for j := 1 to 20 do
write( matrica^[i]^[j], ' ');
writeln;
end;
for i := 1 to 10 do
FreeMem( matrica^[i], sizeof(char)*20 );
FreeMem( matrica, sizeof( pointer ) *12 );
end.