RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
System.FreeMemory Function

FreeMemory frees a memory block.

Pascal
function FreeMemory(P: Pointer): Integer; cdecl;
C++
__cdecl int FreeMemory(void * P);

GetMemory allocates a block on the heap. To dispose of the buffer, use FreeMemory.

Note: FreeMemory is the C++ compatible version of FreeMem.
 

C++ Examples: 

 

/*
The following code demostrates the use of memory management functions in C++. Three
edit boxes and a button are expected onthe form.
*/
String __fastcall FastStrCat(String s1, String s2)
{
  /*
   Allocated enough space in FinalStr to copy the contents
   of the initial string + $00 character
  */
  wchar_t* finalStr = (wchar_t *)GetMemory((s1.Length() + 1) * sizeof(wchar_t));

  // Copy the contents of the first string
  MoveChars(s1.data(), finalStr, s1.Length() + 1);

  // And now expand the final string + $00 character
  finalStr = (wchar_t *)ReallocMemory(finalStr, (s1.Length() + s2.Length() + 1) * sizeof(wchar_t));

  // Copy the contents of the second string
  MoveChars(s2.data(), finalStr + s1.Length(), s2.Length() + 1);

  // Get the result in String
  String result = String(finalStr);
  FreeMemory(finalStr);

  return result;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  // Concatenate 2 string
  Edit3->Text = FastStrCat(Edit1->Text, Edit2->Text);
}

 

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!