Пример 10.1.
Создать динамические структуры типов byte и word, выполнить над ними операцию сложения, после чего освободить память для указанных структур в порядке, обратном выделению. Проект – консольное приложение.
Листинг программы
program prg_10_1;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, RusTrans;
var
p1:^Byte=Nil; //Указатели с инициализацией
p2:^Word=Nil;
Result:real;
begin
writeln(Rus(‘Объект p1′));
new(p1); // Выделить ДП под p1
writeln(Rus(‘ Размер p1=’),SizeOf(p1));
writeln(Rus(‘ Размер p1^=’),SizeOf(p1^));
writeln(Rus(‘Объект p2′));
new(p2); // Выделить ДП под p2
writeln(Rus(‘ Размер p2=’),SizeOf(p2));
writeln(Rus(‘ Размер p2^=’),SizeOf(p2^));
writeln;
writeln(Rus(‘Введите операнды’));
write(‘ a=’);
readln(p1^); // Присвоить значение р1
write(‘ b=’);
readln(p2^); // Присвоить значение р2
Result:=p1^+p2^; // Операция с р1 и р2}
writeln(‘p1^=’,p1^);
writeln(‘p2^=’,p2^);
writeln(Rus(‘Результат операции = ‘),Result:5:2);
readln;
Dispose(p2); // Освободить ДП под р2
p2:=Nil;
Dispose(p1); // Освободить ДП под р1
p1:=Nil;
writeln;
write(‘p1=’);
if p1=Nil then writeln(‘Nil’); // Указатель p2 пуст
write(‘p2=’);
if p2=Nil then writeln(‘Nil’); // Указатель p2 пуст
readln;
end.
Консоль перед закрытием программы: