procedure TForm1.Button2Click(Sender: TObject);
type
PTestRec = ^TestRec;
TestRec = record
A: Cardinal;
B: Cardinal;
end;
var
I: Integer;
ACount: Cardinal;
Data: array of TestRec;
P0, P1: Pointer;
begin
ACount := 10;
GetMem(Pointer(Data), ACount * SizeOf(TestRec));
SetLength(Data, ACount);
for I := 0 to ACount-1 do
Data[i].A := i + 1; P0 := @Data[0];
P1 := @Data[1];
CopyMemory(@P0, @P1, SizeOf(Cardinal));end;怎么样把Data[0]和Data[1]的地址交换了?
type
PTestRec = ^TestRec;
TestRec = record
A: Cardinal;
B: Cardinal;
end;
var
I: Integer;
ACount: Cardinal;
Data: array of TestRec;
P0, P1: Pointer;
begin
ACount := 10;
GetMem(Pointer(Data), ACount * SizeOf(TestRec));
SetLength(Data, ACount);
for I := 0 to ACount-1 do
Data[i].A := i + 1; P0 := @Data[0];
P1 := @Data[1];
CopyMemory(@P0, @P1, SizeOf(Cardinal));end;怎么样把Data[0]和Data[1]的地址交换了?
P0 := @Data[0]; //$B11B98
P1 := @Data[1]; //$B11BA0
CopyMemory(@P0, @P1, SizeOf(Cardinal));
P1 := @Data[0]; 结果: P0: $B11BA0
P1: $B11B98