LINUX.ORG.RU

История изменений

Исправление dikiy, (текущая версия) :

Да запросто: в теле основной программы безо всяких маллоков объявляешь структуру, ее адрес передаешь в программу, которая эту структуру изменяет. Все ОК.

это страшно неудобный костыль. Не получится тогда результат одной функции сразу в другую пихать. простейший пример:

program test;

type TR = record
    a: integer;
    b: integer;
end;

function f: TR;
begin
    f.a:=2;
    f.b:=3;
end;

function g(r: TR): TR;
begin
    g.a:=r.a;
    g.b:=r.a+r.b;
end;

var
    r: TR;

begin
    r:=g(f);
    writeln(r.a,' ',r.b);
end.

Исходная версия dikiy, :

Да запросто: в теле основной программы безо всяких маллоков объявляешь структуру, ее адрес передаешь в программу, которая эту структуру изменяет. Все ОК.

это страшно неудобный костыль. Не получится тогда результат одной функции сразу в другую пихать. простейший пример:

program test;

type TR = record
    a: integer;
    b: integer;
end;

function f: TR;
begin
    f.a:=2;
    f.b:=3;
end;

function g(r: TR): TR;
begin
    g.a:=r.a;
    g.b:=r.a+r.b;
end;

var
    r: TR;

begin
    r:=g(f);
    writeln(r.a,' ',r.b);
end.