Memory management functions
Besides the various internal functions that the Delphi runtime library (RTL) uses to manage strings, arrays and other built-in data types, RTL also implements various functions that you can use in your program to allocate and release memory blocks. In the next few paragraphs, I'll tell you a little bit about them.
Memory management functions can be best described if we split them into a few groups, each including functions that were designed to work together.
The first group includes GetMem
, AllocMem
, ReallocMem
, and FreeMem
.
The procedure GetMem(var P: Pointer; Size: Integer)
allocates a memory block of size Size
and stores an address of this block in a pointer variable P
. This pointer variable is not limited to pointer
type, but can be of any pointer type (for example PByte
).
The new memory block is not initialized and will contain whatever is stored in the memory at that time. Alternatively, you can allocate a memory block with a call to the function AllocMem(Size...