繁体   English   中英

我无法将函数结果返回给过程

[英]I can't return function result to a procedure

我的程序有什么问题。 我无法从函数“PointerRecord”返回指针并在过程“Show”中使用他?。

type
  p = ^element;
  element = record
         age:integer;
         name:string;
 end;
var
  adr:p;
  result:p;
  w:integer;
  i:string;

end;
function RecordPointer(var w:integer;var i:string):p;
var
  person:p;
begin
  new(person);
  person^.age :=w;
  person^.name :=i;
  adr:=person;
  RecordPointer := adr;
end;
procedure show(result:p);
var
 w:integer;
 i:string;
begin
 w:=result^.age;
 i:=result^.name;
 writeln(w);
 writeln(i);
 readln;
end;

有人可以向我解释一下吗?

尝试更像这样的事情:

type
  p = ^element;
  element = record
         age:integer;
         name:string;
  end;

function RecordPointer(w: integer; i: string): p;
var
  person: p;
begin
  New(person);
  person^.age := w;
  person^.name := i;
  RecordPointer := person;
end;

procedure show(person: p);
begin
 writeln(person^.age);
 writeln(person^.name);
 readln;
end;

var
  person: p;
begin
  person := RecordPointer (24, 'Johnny');
  show(person);
  Dispose(person);
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM