我创建了一个二维的动态数组,然后我有一个下标为[3][4]的数值10要加入到该动态数组中。然后我又有一个下标为[1][2]的数值30加入到该动态数值。我要求该动态数组的最大下标仍为[3][4],即10这个数值仍然在该动态数组中。最后我又输入下标为[5][8]的数值60,这时动态数组的最大下标变为[5][8]。
能举一个例子。谢谢!

解决方案 »

  1.   

    setlength(aaa,m,n);
    m,n值根据你加入下标值的大小来动态改变
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:array of array of integer;
      i,j:integer;
    begin
      setlength(a,4);
      for i:=low(a) to high(a) do
        SetLength(A[I], 5);
      a[1,2]:=10;
      a[3,4]:=10;
      showmessage(inttostr(a[3,4]));
      setlength(a,6);
      for i:=low(a) to high(a) do
        setlength(a[i],9);
      a[5,8]:=60;
      showmessage(inttostr(a[3,4]));
      showmessage(inttostr(a[5,8]));end;
      

  3.   

    动态生成数组,应注意一点:
    在原来的数组上扩展的(大于原来的数组),原来数组中的值不变。
    减小数组,将超出数组Index的值清除,即使再增大,也无法还原原来的值。
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    var arr :array [0..7,0..4] of char;
    begin
      ShowMessageFmt('High(arr)=%d,High(arr[0])=%d',[High(arr)-1,High(arr[0])-1]);
    end;