别完,为什么用 如: Dest:array[0.10] of integer; Source:array[0.10] of integer; WinApi函数 CopyMemory(@Dest,@Source,length(Source)); 或是Move(Source,Dest,Length(Source)); 不行?
行,length(Source)要不要改成sizeof(sorce)?!
to BCB 可是不行呀Sizeof(Source)是4*11=44 而Length(Source)是11我指的方法Move和CopyMemory都不行!希望你能做过试验就知道! procedure TForm1.Button1Click(Sender: TObject); var Source:array [0..10] of integer; Dest:array [0..10] of integer; i:integer; begin for i:=0 to 10 do Source[i]:=i; CopyMemory(@Dest,@Source,length(Source)); // Move(Source,Dest,Length(Source)); showmessage(Inttostr(Dest[9])); //一个很大的数字!???? end; end.
喔!是我搞错啦!是应该用Sizeof(Source) BCB是对的!我理解错误!
我想,应该是这样:procedure AssignIntAry( const Src: array of Integer; var Dest: array of Integer ); begin SetLength( Dest, Length(Src) ); Move( Src[0], Dest[0], Length(Src)*SizeOf(Integer) ); end;
a1,a2:array of char;声明的时候这样就可以a1:=a2;了
不同意zhoudut(xingxing),因为这里的a1:=a2只是指针赋值,不是拷贝内容。
如: Dest:array[0.10] of integer;
Source:array[0.10] of integer;
WinApi函数 CopyMemory(@Dest,@Source,length(Source));
或是Move(Source,Dest,Length(Source));
不行?
而Length(Source)是11我指的方法Move和CopyMemory都不行!希望你能做过试验就知道!
procedure TForm1.Button1Click(Sender: TObject);
var
Source:array [0..10] of integer;
Dest:array [0..10] of integer;
i:integer;
begin
for i:=0 to 10 do
Source[i]:=i;
CopyMemory(@Dest,@Source,length(Source));
// Move(Source,Dest,Length(Source));
showmessage(Inttostr(Dest[9])); //一个很大的数字!????
end;
end.
BCB是对的!我理解错误!
begin
SetLength( Dest, Length(Src) );
Move( Src[0], Dest[0], Length(Src)*SizeOf(Integer) );
end;