动态数组赋值用copy()函数出问题了(100分)

  • 主题发起人 主题发起人 quitelei
  • 开始时间 开始时间
Q

quitelei

Unregistered / Unconfirmed
GUEST, unregistred user!
动态数组赋值用copy()函数出问题了,100分相送
type
AIAreaDataArray= Array of Array of double;//二维数组
AIAreaDataArrayArray= Array of AIAreaDataArray
//三维数组
var
AIData:AIAreaDataArray;
A:AIAreaDataArrayArray;
i:integer;
////////
begin
setlength(AIData,10,10);
setlength(A,11);
for i:=1 to 10 do
begin
AIData[1][1]:=i;
A:=copy(AIData);
end;
end

结果设想是A[1][1]应该等于i,是从1到10变化的,但实际情况是全为10
 
copy的结果是字符串
着是在DELPHI里用吗??
那我没记错的话。
 
function Copy(S
Index, Count: Integer): string;
function Copy(S
Index, Count: Integer): array;
总共有3个参数:原字符串,复制起始位置,复制字符个数。
 
copy也可以处理动态数组的
 
使用MEMORYCOPY或MOVE
 
试了一下move,还是同样的问题,实在搞不清动态数组里面如何运作的
 
var
AIData:AIAreaDataArray;
A:AIAreaDataArrayArray;
i:integer;
begin
setlength(AIData,10,10);
setlength(A,10,10,10);
for i:=0 to 9 do
begin
AIData[0][0]:=i;
//A:=copy(AIData);
move(AIData[0][0],A[0][0],sizeof(AIData));
end;
...
end;
 
动态数组实质是指针数组,知道这个就能想清楚了
 
动态数组是引用计数类型(是指针)
begin
AIData[1][1]:=i;
A:=copy(@AIData[0][0])
//这是在瞎写
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
316
import
I
后退
顶部