Can someone explain me why Move(const Src; var Dest; Length); needs the pointers dereferenced?
I expected Move(pSrc, pDest, 16); but it doesn't work. See the code. When I type pSrc^, it's the value on that address, isn't it? But it works.
procedure TForm1.Button1Click(Sender: TObject);
var pSrc, pHelp, pDest: Pointer;
i: Integer;
begin
GetMem(pSrc, 16);
GetMem(pDest, 16);
for i:=0 to 15 do
PByte(pSrc+i)^:=i;
for i:=0 to 15 do
writeln(PByte(pDest+i)^);
pHelp:=pDest;
Move(pSrc^, pHelp^, 16); //HERE
for i:=0 to 15 do
writeln(PByte(pDest+i)^);
FreeMem(pSrc, 16);
FreeMem(pDest, 16);
end;
Thanks.