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()