我该用什么函数来重新分配

解决方案 »

  1.   

    对于结构,我觉得不要用叔祖进行存放,应该用TList,对结构的指针进行存放
      

  2.   

    var
     i: integer;
     a: array of integer;
    begin for i :=1 to 10 do
     begin
       setlength(a,i);
       a[i]:=i;
     end; for i:= 1 to 10 do
     begin
       showmessage(inttostr(a[i]));
     end;
    你运行一下,看是什么值全是0
      

  3.   

    原因是:动态数组的下标是从0开始的,写成a[i-1]:=i就对了
      

  4.   

    同意楼上的.
    另外,动态数组分配内存时有时候确实会有数据丢失的问题,
    好象可以换一个叫realloc的函数来解决问题(TList就是一个极好的例子)
      

  5.   

    改为:
    var
     i: integer;
     a: array of integer;
    begin for i :=1 to 10 do
     begin
       setlength(a,i);
       a[i-1]:=i;//第i个元素的下标是i-1!
     end; for i:= 1 to 10 do
     begin
       showmessage(inttostr(a[i]));
     end;
      

  6.   

    刚才没改完,下面的显示语句也要改: for i:= 0 to 9 do
     begin
       showmessage(inttostr(a[i]));
     end;