Создание динамического массива - Free Pascal
Формулировка задачи:
Хеллоу, помогите, пожалуйста, написать программу, создающую динамический массив размером, указанным пользователем, и заполняющую его числами от 1 до размера массива.
Решение задачи: «Создание динамического массива»
textual
Листинг программы
program test;
{$mode fpc}
var
n: integer;
i: integer;
a: pinteger; // указатель целого типа
begin
Write('Input n: ');
ReadLn(n);
// выделям область памяти достаточную для хранения n элементов типа integer
GetMem(a, n * sizeof(integer));
// заполняем массив цифрами от 1 до n(индексация в динамическом массиве начинается с 0)
for i:= 0 to n-1 do
a[i]:= i+1;
// выводим массив на экран
for i:= 0 to n-1 do
WriteLn(a[i]); // можно записать и так WriteLn((a+i)^);
// освобождаем память
FreeMem(a);
ReadLn;
end.
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод числа n.
- Затем программа выделяет память под массив целых чисел типа integer, размером n*sizeof(integer).
- И заполняет этот массив числами от 1 до n (индексация в динамическом массиве начинается с 0).
- После этого программа выводит на экран все элементы массива.
- В конце программа освобождает память, которую занимал массив.
- И ожидает ввода пользователя, чтобы закрыть программу.