定義されたメモリー割当ての仕組みを使用して、メモリー・ブロックを割り当てます。
構文
ESS_FUNC_M EssAlloc (
hInstance, Size, ppBlock
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hInstance |
ESS_HINST_T |
APIインスタンス・ハンドル。 |
Size |
ESS_SIZE_T |
割り当てるメモリー・ブロックのサイズ。 |
ppBlock |
ESS_PPVOID_T |
割り当てられたメモリー・ブロックを受け取るポインタのアドレス。 |
備考
この関数は、EssInit関数に渡されたユーザー指定のメモリー管理関数を使用してメモリーを割り当てます。このような関数が指定されていない場合、デフォルトのメモリー割当て関数(プラットフォーム依存)が使用されます。
この関数を使用して割り当てられたメモリーの再割当てと解放は、それぞれEssRealloc関数とEssFree関数を使用して行う必要があります。
一般的に、サイズが0のブロックの割当ての結果はプラットフォームやコンパイラに依存するため、このような割当てはお薦めしません。
戻り値
ppBlockに割り当てられたメモリー・ブロックへのポインタが戻されます。
アクセス
この関数を使用するのに、特別な権限は必要ありません。
例
ESS_FUNC_M ESS_GetAppActive (ESS_HCTX_T hCtx,
ESS_HINST_T hInst)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_STR_T pDbName;
ESS_STR_T pAppName;
ESS_ACCESS_T Access;
if ((sts = EssAlloc (hInst, 80, (ESS_PPVOID_T)&pAppName)) == 0)
{
if ((sts = EssAlloc (hInst, 80, (ESS_PPVOID_T)&pDbName)) == 0)
{
if ((sts = EssGetActive (hCtx, &pAppName, &pDbName, &Access)) == 0)
{
if (pAppName)
{
if (*pAppName)
printf ("Current active application is [%s]\r\n",pAppName);
else
printf ("No active Application is set\r\n");
printf ("\r\n");
}
}
EssFree (hInst, pDbName);
}
EssFree (hInst, pAppName);
}
return (sts);
}
関連トピック