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)に関する項
親トピック: 型付きバッファの管理