function sum(x:^integer;y:^integer):integer;
begin
result:=x^+y^;
end;procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:^integer;
begin
     a^:=strtoint(memo1.Lines[1]);
     b^:=strtoint(memo1.Lines[2]);
     c:=sum(x,y);
     showmessage(inttostr(c));
end;
编译出错,高手帮忙看看.

解决方案 »

  1.   

    function sum(x: PInteger; y: PInteger): Integer;
    begin
      Result := x^ + y^;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      a, b, c: PInteger;
    begin
      if Memo1.Lines.Count < 3 then Exit; // 检查
      New(a);New(b);New(c); // 分配内存
      a^ := StrToInt(Memo1.Lines[1]);
      b^ := StrToInt(Memo1.Lines[2]);
      c^ := sum(a, b);  ShowMessage(IntToStr(c^));
      Dispose(a);Dispose(b);Dispose(c); // 释放内存
    end;