RTex.
type 
  Tc=record
    b:array of Integer;
  end;
  const a:array[1..5] of Integer=(1,2,3,4,5);begin
   //How to assign a to b? 
end;

解决方案 »

  1.   

    var
      c:tc;
    begin
      c.b:=@a;
    end;
      

  2.   

    楼上的没错,不过最好这样
    var
      c: Tc;
    begin
      c.b := @a;
      SetLength(c.b,5);
    end;
      

  3.   

    谢谢楼上两位,
    to chenyayuSetlength(c.b,5);要在c.b:=@a;的上面,好像SetLength重新初始化了c.b,则c.b所有元素为0同时,在Delphi7中如果从1遍历到5,其元素就等于(2,3,4,5,XX),估计编译器是从0开始的,不是从1,结贴
      

  4.   

    1.Setlength 如果在赋值操作之前的话,就没有起到作用,最终的c.b会很长,如果用在后面,则可以按要求长度截断。2.动态数组始终是从0开始的,如果要遍历它,也应该从0开始,而不是1
      

  5.   

    还有,Setlength是不会重新初始化的,只是设置长度