例子如下:
var
  A: array of myList; //myList是自定义结构,A在本单元是全程的...
f1(B:array of myList);
begin
   B:=A;    //在此不能通过,提示相反的类型,怎么办
   ...
end;f2();
begin
 showmessage(A[1].name);
end;
end.

解决方案 »

  1.   

    刚次写错了。
    例子如下:
    var
      A: array of myList; //myList是自定义结构,A在本单元是全程的...
    f1(B:array of myList);
    begin
       A:=B;    //在此不能通过,提示相反的类型,怎么办
       ...
    end;f2();
    begin
     showmessage(A[1].name);
    end;
    end.
      

  2.   

    传递参数f1(a[i]);A:=B;    //不太明白你要干什么
      

  3.   

    A: array of myList是动态数组
    b:是数组参数既开放数组
    不是一会事
      

  4.   

    想在本单元中其它函数中使用A,是通过f1(B:array of myList)初始化A的。
      

  5.   

    自己复制:
    SetLength(A,High(B)+1);
    for i:=0 to High(B) do
      A[i]:=B[i];
      

  6.   

    jimh(jimmy) 兄的方法我也想过,不过这样一来可能会消耗系统时间和内存,因为传入的数组可能很大,我想能不能通过A引用B?
      

  7.   

    动态数组需要分配空间的。。
    SetLength
      

  8.   

    Setlength
    然后再偱环就是了,试试,可以吗?
      

  9.   

    var
      A: array of myList; //myList是自定义结构,A在本单元是全程的...
    f1(B:array of myList);
    begin
       B:=A;    //在此不能通过,提示相反的类型,怎么办
       ...
    end;
    --------------
    这样定义没有必要吧
    在函数里定义b,不要传参数,反正a是全局的,可以直接使用
      

  10.   

    这个应该是Pascal的问题。在pascal中,必须把这种情况定义一个类型。
    TMyList = array of MyList;函数定义:
    f1( list:TMyList )
    var p:TMyList;
    begin
        p := list;
    end;
      

  11.   

    var
    A: array of myList;你定义的是一个不定长的数组,使用前必须初始化数组大小
    比如用:setlength()函数