| |
| How can I avoid an access violation when using the move procedure |
 |
How can I avoid an access violation when using the move procedure with pointers?
You must dereference the pointers, otherwise you are moving the address of the pointers and possibly corrupting other memory locations.
Example
procedure TForm .Button Click(Sender: TObject);
var
p : pointer;
p2 : pointer;
begin
GetMem(p , 28);
GetMem(p2, 28);
{This line may cause an access violation}
Move(p , p2, 28);
{This line is correct}
Move(p ^, p2^, 28);
FreeMem(p , 28);
FreeMem(p2, 28);
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|