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. Let’s take a closer look at these groups:
- The first group includes
GetMem
,AllocMem
,ReallocMem
, andFreeMem
.
The GetMem(var P: Pointer; Size: Integer)
procedure 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 the 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...