free a based-heap segment
#include <malloc.h> int _bfreeseg( __segment seg );
The _bfreeseg() function frees a based-heap segment.
The argument seg indicates the segment returned by an earlier call to _bheapseg().
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct list {
struct list __based(__self) *next;
int value;
};
void main()
{
int i;
__segment seg;
struct list __based(seg) *head;
struct list __based(seg) *p;
/* allocate based heap */
seg = _bheapseg( 1024 );
if( seg == _NULLSEG ) {
printf( "Unable to allocate based heap\n" );
exit( 1 );
}
/* create a linked list in the based heap */
head = 0;
for( i = 1; i < 10; i++ ) {
p = _bmalloc( seg, sizeof( struct list ) );
if( p == _NULLOFF ) {
printf( "_bmalloc failed\n" );
break;
}
p->next = head;
p->value = i;
head = p;
}
/* traverse the linked list, printing out values */
for( p = head; p != 0; p = p->next ) {
printf( "Value = %d\n", p->value );
}
/* free all the elements of the linked list */
for( ; p = head; ) {
head = p->next;
_bfree( seg, p );
}
/* free the based heap */
_bfreeseg( seg );
}
WATCOM
| Safety: | |
|---|---|
| Interrupt handler | Unknown |
| Signal handler | Unknown |
| Thread | Unknown |
_bcalloc(), _bexpand(), _bfree(), _bheapseg(), _bmalloc(), _brealloc()