请看代码://计算回归方程的函数
Function Hui_gui(n:integer;xi:array of int64;yi:array of int64;var a:int64;var b:int64;var R:int64):int64;
var
  num,i,j:integer;
  xi2,yi2,xiyi:array of int64;
  sum_xi,sum_yi,sum_xi2,sum_yi2,sum_xiyi:int64;
  avg_x,avg_y:real;
  LXY,LYY,LXX:real;
begin
  num:=n;
  setlength(xi2,num);
  setlength(yi2,num);
  setlength(xiyi,num);  //计算xi平方,yi平方,xi*yi ;
  for i:=0 to num-1 do
  begin
  xi2[n]:=xi[n]*xi[n];
  yi2[n]:=yi[n]*yi[n];
  xiyi[n]:=xi[n]*yi[n];
  end;  //计算xi,yi,xi2,yi2,xi*yi的统计和
  sum_xi:=0;
  sum_yi:=0;
  sum_xi2:=0;
  sum_yi2:=0;
  sum_xiyi:=0;
  for i:=0 to num-1 do
  begin
  sum_xi:=sum_xi+xi[n];
  sum_yi:=sum_yi+yi[n];
  sum_xi2:=sum_xi2+xi2[n];
  sum_yi2:=sum_yi2+yi2[n];
  sum_xiyi:=sum_xiyi+xiyi[n];
  end;  //计算平均值:avg_x,avg_y
  avg_x:=sum_xi / n;
  avg_y:=sum_yi / n;  //计算LXY,LYY,LXX
  LXY:=sum_xiyi-n*avg_x*avg_y;
  LYY:=sum_yi2-n*avg_y*avg_y;
  LXX:=sum_xi2-n*avg_x*avg_x;  //计算b,a
  b:=LXY;     ///LXX;
  a:=avg_y-b*avg_x;  Hui_gui:=1;
end;procedure TChartForm5.FormActivate(Sender: TObject);
var
  i,TotalCount:integer;
  p_xi,p_yi:array of int64;
  p_a,p_b,p_R:int64;
  x:int64;
  astring:string;
begin  // 根据 Table5 中的 Sys 字段 来确定
   if DataModule1.Table5.Active=False then
      DataModule1.Table5.Active:=True;
   with DataModule1.Table5 do
   begin
    TotalCount:=RecordCount;
    setlength(p_xi,TotalCount);
    setlength(p_yi,TotalCount);
    first;
    for i:=0 to TotalCount-1 do
    begin
    p_xi[i]:=FieldByName('Sys').AsInteger;
    p_yi[i]:=FieldByName('Dia').AsInteger;
    next;
    end;
   end;   //调用Hui_gui()
   p_a:=1;
   p_b:=1;
   p_R:=1;   for i:=0 to TotalCount-1 do
   begin
   self.RichEdit1.Lines.Add(inttostr(p_xi[i]));
   end;
   ShowMessage ('Value tripled: ' + IntToStr (TotalCount));
   x:=Hui_gui(TotalCount,p_xi,p_yi,p_a,p_b,p_R);
end;
编译没问题,运行时   x:=Hui_gui(TotalCount,p_xi,p_yi,p_a,p_b,p_R);
这一句报错,“Invalid pointer operation”,是子函数错了还是调用时错了?