2.6 型付きバッファの解放
tpfree(3c)関数は、tpalloc()で割り当てられたバッファ、またはtprealloc()で再度割り当てられたバッファを解放します。次はtpfree()関数のシグネチャです:
void tpfree(char *ptr)
tpfree()関数の引数は、次のリストに示すptrだけです。
表2-5 tpfree()関数の引数
| 引数 | 説明 |
|---|---|
ptr
|
データ・バッファを指すポインタ。このポインタは、tpalloc()またはtprealloc()の呼出しで設定されます。NULLは指定できません。また、文字型にキャストする必要があります。この2つの条件が満たされていない場合、この関数は何も解放しないか、エラー条件を通知しないで制御を戻します。
|
tpfree()を使用してFML32バッファを解放するとき、ルーチンは埋め込まれたバッファをすべて再帰的に解放して、メモリー・リークの発生を防ぎます。埋め込みバッファが解放されないようにするには、対応するポインタにNULLを指定してからtpfree()ルーチンを発行します。ptrがNULLの場合、何も処理は行われません。
次のリストは、tpfree()関数を使用してバッファを解放する方法を示しています。
バッファの解放のリスト
struct aud *audv; /* pointer to aud view structure */
. . .
audv = (struct aud *)tpalloc("VIEW", "aud", sizeof(struct aud));
. . .
tpfree((char *)audv);関連項目:
- 型付きバッファの割当て
- 型付きバッファのサイズの変更
- 『Oracle Tuxedo ATMI C関数リファレンス』の
tpfree(3c)に関する項
親トピック: 型付きバッファの管理