GetMem allocates a memory block.
procedure GetMem(var P: Pointer; Size: Integer);
GetMem(void * P, int Size);
System
GetMem allocates a block of the given Size on the heap, and returns the address of this memory in parameter P. The bytes of the allocated buffer are not set to zero. To dispose of the buffer, use FreeMem. If there isn't enough memory available to allocate the block, an EOutOfMemory exception is raised.
Delphi Examples:
{ The following example opens a file of your choice and reads the entire file into a dynamically allocated buffer. The buffer and the size of the file are then passed to a routine that processes the text, and finally the dynamically allocated buffer is freed and the file is closed. } procedure TForm1.Button1Click(Sender: TObject); var F: file; Size: Integer; Buffer: PChar; begin if OpenDialog1.Execute then begin AssignFile(F, OpenDialog1.FileName); Reset(F, 1); try Size := FileSize(F); GetMem(Buffer, Size); try BlockRead(F, Buffer^, Size); Memo1.Lines.Add(Buffer); finally FreeMem(Buffer); end; finally CloseFile(F); end; end; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|