FreeMemory frees a memory block.
function FreeMemory(P: Pointer): Integer; cdecl;
__cdecl int FreeMemory(void * P);
GetMemory allocates a block on the heap. To dispose of the buffer, use FreeMemory.
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!
|