qc.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
FREECT.C
                                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
/* FREECT.C illustrates the following heap functions:
 *      _freect         _memavl
 */
 
#include <malloc.h>
#include <stdio.h>
 
void main()
{
    char _near *bufs[64];
    unsigned request, avail, i;
 
    printf( "Near heap bytes free: %u\n\n", _memavl() );
    printf( "How many 1K buffers do you want from the near heap? " );
    scanf( "%d", &request );
    if( request > 64 )
    {
        printf( "There are only 64K in a segment.\n" );
        request = 64;
    }
 
    avail = _freect( 1024 );
    request = (avail > request) ? request : avail;
    printf( "You can have %d buffers\n", request );
 
    printf( "They are available at:\n");
    for( i = 0; i < request; i++ )
    {
        bufs[i] = (char _near *)_nmalloc( 1024 );
        printf( "%2d %Fp   ", i + 1, (char _far *)bufs[i] );
        if( (i % 5) == 4 )
            printf( "\n" );
    }
    printf( "\n\nNear heap bytes free: %u\n\n", _memavl() );
    printf( "Freeing buffers . . ." );
    for( i = request; i; i-- )
        _nfree( bufs[i] );
    printf( "\n\nNear heap bytes free: %u", _memavl() );
}