Освобождает дескриптор памяти hand который был ранее выделен такими средствами, как _AllocHand( ).
void _FreeHand(MHANDLE hand) MHANDLE hand; /* Дескриптор памяти. */ |
Пример
В следуюшем примере выделяется 1024 блока памяти по 16384 байт, всего 16 Мбайт, причем перед тем, как выделять очередной блок, освобождается предыдущий с помощью _FreeHand( ).
Код Visual FoxPro
Copy Code | |
|---|---|
SET LIBRARY TO FREEHAND | |
Код C
Copy Code | |
|---|---|
#include <pro_ext.h>
void FAR Example(ParamBlk FAR *parm)
{
MHANDLE mh;
int i;
for (i = 0; i < 1024; i++)
{
if ((mh = _AllocHand(16384)) == 0)
{
_Error(182); // "Insufficient memory"
}
_FreeHand(mh);
}
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) Example, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
}; | |
Смотрите также
Справочное руководство
Процедура библиотеки API _AllocHand( )Процедура библиотеки API _GetHandSize( )
Процедура библиотеки API _HandToPtr( )
Процедура библиотеки API _HLock( )
Процедура библиотеки API _HUnLock( )
Процедура библиотеки API _MemAvail( )
Процедура библиотеки API _SetHandSize( )