[Previous]
[Contents]
[Next]

_bfreeseg()

free a based-heap segment

Synopsis:

#include <malloc.h>
int _bfreeseg( __segment seg );

Description:

The _bfreeseg() function frees a based-heap segment.

The argument seg indicates the segment returned by an earlier call to _bheapseg().

Returns:

0
if successful
-1
if an error occurred

Examples:

#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 );
  }

Classification:

WATCOM

Safety:
Interrupt handler Unknown
Signal handler Unknown
Thread Unknown

See also:

_bcalloc(), _bexpand(), _bfree(), _bheapseg(), _bmalloc(), _brealloc()


[Previous]
[Contents]
[Next]