Тип указателя динамический массив FreePascal
Как преобразовать указатель типа pointer к типу ppbyte?
type pbyte=^byte;
ppbyte=^pbyte;
procedure RotateMatrixDynamic(pmatrix:pointer);
var i, j: integer; n: word;
begin
n:=byte((pmatrix-4)^);
n:=n+1;
// преобразовать pmatrix из pointer в ppbyte
for i:=1 to n do begin
for j:=1 to n do begin
write(pmatrix^^,' ');
inc(pmatrix^);
end;
inc(pmatrix);
end;
end;
Cоnst N=3;
var ps:array of array of byte;
procedure fill(); // заполнение матрицы
var x:byte;
i,j:integer;
begin
x:=10;
setlength(ps,N);
for i:=0 to N-1 do begin
setLength(ps,N);
for j:=0 to N-1 do begin
ps[j]:=x;
inc(x,10);
end;
end;
end;
procedure out(); // вывод матрицы на экран
var i,j:integer;
begin
writeln;
for i:=0 to N-1 do begin
for j:=0 to N-1 do write(ps[j]:5);
writeln;
end;
end;
begin
fill();
out();
RotateMatrixDynamic(pointer(ps));
end.
Весь код привожу, чтобы понятнее было. В n - хранится размер массива (кол-во строк или столбцов, так как они равны, матрица квадратная) . Это благодаря pointer. А дальше надо работать с типом ppbyte...
Я уже задавала. . http://otvet.mail.ru/comments/answer/426313783/comment/78730156/
Но мне надо конкретный ответ. . Прямо код мне напишите пожалуйста.. .а то я уже столько времени мучаюсь ((