Get a specified number of storage bytes System unit
 function GetMem ( var StoragePointer : Pointer; StorageSize : Integer ) ;
The GetMem procedure attempts to get the specified StorageSize bytes of storage, storing a pointer to the storage in StoragePointer.
If the allocation fails, then a EOutOfMemory exception is raised.
The storage is not initialised in any way.
The GetMem procedure is Thread safe as long as IsMultiThread is true.

It is better to use New to allocate storage for records - the example is for illustration of GetMem and pointer manipulation.
Related commands
Dispose Dispose of storage used by a pointer type variable
FillChar Fills out a section of storage with a fill character or byte value
FreeMem Free memory storage used by a variable
New Create a new pointer type variable
ReallocMem Reallocate an existing block of storage
 Author links

 Download this web site as a Windows program.

Example code : Get storage for 3 records and use this storage
  TRecord = Record
    name : string[10];
    age  : Byte;

  recPointer : ^TRecord;

  // Allocate storage for three records
  // Note : It is better to use New for this
  // It is used here for illustration purposes only
  GetMem(recPointer, 3 * SizeOf(TRecord));

  // Fill out these 3 records with values := 'Brian';
  recPointer.age  := 23;

  Inc(recPointer); := 'Jim';
  recPointer.age  := 55;

  Inc(recPointer); := 'Sally';
  recPointer.age  := 38;

  // Now display these values
  Dec(recPointer, 2);
  ShowMessageFmt('%s is %d',[, recPointer.age]);
  ShowMessageFmt('%s is %d',[, recPointer.age]);
  ShowMessageFmt('%s is %d',[, recPointer.age]);
Show full unit code
   Brian is 23
   Jim is 55
   Sally is 38
Delphi Programming Neil Moffatt 2002 - 2020. All rights reserved.  |  Home Page