我定义了一个对象,其中有个动态的多维数组属性,在方法中要用到该数组,调用时是个循环,每次数组的长度不一样,要每次改变长度,(aa:=nil;setlength(aa,i,x);).,但是确是报错,错误的指针操作,为什么,
大致的结构如下(随手写的):
type Tname =class
    begin
      private
         aa:array of array of  integer;
         ..其他参数
      public
        Setlength(i,x);
        run1();
        run2();
   Setlength(i,x)
    begin
       aa:=nil;
       setlength(aa,i,x);//第一次可以操作,以后运行到这里报错
    end;
  run1();
    begin
      run2();//这里i,x的值可能改变
      for  j:=0  to  k  do 
      begin
         setlength();//调用一下,想改变数组的长度
         ...其他函数要道数组.
      end;
    end;
  end;main()   //其实这是在另一个窗体中调用那个对象的方法,
begin
  name:=Tname.create(self);
  name.run1();//调用方法,操作.
  .....其他  
end;
难道定义数组不能作为对象属性吗??

解决方案 »

  1.   

    你这不是DELPHI的语法么。怎么发到C++里头来了。
    什么叫“随手写”的?你自己问问题都“随手”,还有人来答你啊。
      

  2.   

    不好意思的,解释一下,因为我提问问题是在外面网吧上的,程序是在公司里调试的,关于一个mps的运算,代码很长的,我只记得一个大概框架(就“随手”写了个大概),因为我想用这种方法解决问题的,但是调试时出现问题。本来想全用c++写的,但是不熟悉,只好写了一个“四不象”,大家见笑了。主要向问一下,用数组变量作为一个对象的属性,生成对象后能不能改变其属性的长度。