Использование многомерного массива
type RecType = integer; {<-- здесь задается тип элементов массива} const MaxRecItem = 65520 div sizeof(RecType);
type = MyArrayType = array[0..MaxRecItem] of RecType;
type = MyArrayTypePtr = ^MyArrayType;
var MyArray: MyArrayTypePtr;
begin ItemCnt := 10; {количество элементов массива, которые необходимо распределить}
GetMem(MyArray, ItemCnt * sizeof(MyArray[1])); {распределение массива}
MyArray^[3] := 10; {доступ к массиву}
FreeMem(MyArray, ItemCnt * sizeof(MyArray[1])); {освобождаем массив после работы с ним}
end; |
type
PRow = ^TRow;
TRow = array[0..16379] of Single;
PMat = ^TMat;
TMat = array[0..16379] of PRow;
var
Mat: PMat;
X, Y, Xmax, Ymax: Integer;
begin Write('Задайте размер массива: ');
ReadLn(Xmax, Ymax); if (Xmax <= 0) or (Xmax > 16380) or (Ymax <= 0) or (Ymax > 16380) then
begin
WriteLn('Неверный диапазон. Не могу продолжить.');
Exit; end;
GetMem(Mat, Xmax * SizeOf(PRow));
for X := 0 to Xmax - 1 do
begin
GetMem(Mat[X], Ymax * SizeOf(Single));
for Y := 0 to Ymax - 1 do
Mat^[X]^[Y] := 0.0;
end;
WriteLn('Массив инициализирован и готов к работе.');
WriteLn('Но эта программа закончила свою работу.');
end. |