Var 
 a: array of integer; //全局procedure proc();
var
 A1: array of integer;
begin
  setlength(a1,10);
  a := a1;//是否可以这样赋值?
end;请问这样做可以吗?
当过程结束以后,A1是局部变量将被释放,那全局变量a是否还指向合法的内存空间呢?

解决方案 »

  1.   

    a := a1;会给a生成一个指针(和a1的指针指向地址相同),过程结束后,a被销毁(其指针也不存在了),但是不会影响到a1。—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    这样可以达到你的要求Type
      MyArray=array of Integer;var
      a:MyAarray;procedure proc();
    var
      A1:MyArray;
    begin
      setlength(a1,10);
      a := a1;
    end;