2.6 Freeing a Typed Buffer
The tpfree(3c)
function frees a buffer allocated by tpalloc()
or reallocated by tprealloc()
. The tpfree()
function signature is as follows:
void tpfree(char *ptr)
The tpfree()
function takes only one argument, ptr
, which is described in the following listing.
Table 2-5 tpfree() Function Argument
Argument | Description |
---|---|
ptr
|
Pointer to a data buffer. This pointer must have been allocated originally by a call to tpalloc() or tprealloc() , it may not be NULL, and it must be cast as a character type; otherwise, the function returns without freeing anything or reporting an error condition.
|
When freeing an FML32
buffer using tpfree()
, the routine recursively frees all embedded buffers to prevent memory leaks. In order to preserve the embedded buffers, you should assign the associated pointer to NULL before issuing the tpfree()
routine. When ptr
is NULL, no action occurs.
The following listing shows how to use the tpfree()
function to free a buffer.
Listing Freeing a Buffer
struct aud *audv; /* pointer to aud view structure */
. . .
audv = (struct aud *)tpalloc("VIEW", "aud", sizeof(struct aud));
. . .
tpfree((char *)audv);
See Also:
Parent topic: Managing Typed Buffers