我定义了一个对象,其中有个动态的多维数组属性,在方法中要用到该数组,调用时是个循环,每次数组的长度不一样,要每次改变长度,(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;
难道定义数组不能作为对象属性吗??
大致的结构如下(随手写的):
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;
难道定义数组不能作为对象属性吗??
什么叫“随手写”的?你自己问问题都“随手”,还有人来答你啊。