type
  a : array of Longword ;
  pa : ^a ;
  i : integer ;begin
  getmem( pa , sizeof( longword ) * 100 ) ;
  //在此始初化pa数组的值.
  i := 2 ;
  i := pa^[ i ] ;   //请问这一句是否正确。
end ;

解决方案 »

  1.   

    你到底是定义了一个类型呢?还是定义了一个动态数组呀?
    使用动态数组前要用SETLENGTH指定长度的。
      

  2.   

    a是一个动态数组,在使用之前必须setlength来分配内存,否则,pa也就是一个空指针,你去调用i := pa^[ i ] ;肯定会有错误的。
      

  3.   

    不好意思,是我发错了。type
      La = array of Longword ;
      pla = ^La ;var
      i : integer ;
      a : pla ;begin
      getmem( a , sizeof( longword ) * 100 ) ;
      //在此始初化pa数组的值.
      i := 2 ;
      i := a^[ i ] ;   //请问这一句是否正确。
      freemem( a ) ;
    end ;
      

  4.   

    如果我用的是  a := fun1() ;//此函数返回一块数据。
    i := a^[ i ] ;呢?
      

  5.   

    如果我用的是  a := fun1() ;//此函数返回一块数据。
    i := a^[ i ] ;呢?