[Previous]
[Contents]
[Next]

malloc(), _bmalloc(), _fmalloc(), _nmalloc()

allocate memory

Synopsis:

#include <stdlib.h>  /* For ANSI compatibility 
                        (malloc only) */
#include <malloc.h>  /* Required for other 
                        function prototypes */

void *malloc( size_t size );
void __based(void) *_bmalloc( __segment seg, 
                              size_t size );
void __far  *_fmalloc( size_t size );
void __near *_nmalloc( size_t size );

Description:

The malloc() functions allocate space for an object of size bytes. Nothing is allocated when the size argument has a value of zero.

Each function allocates memory from a particular heap, as listed below:

malloc()
Depends on data model of the program (see below)
_bmalloc()
Based heap specified by seg value
_fmalloc()
Far heap (outside the default data segment)
_nmalloc()
Near heap (inside the default data segment)

In a small data memory model, malloc() is equivalent to _nmalloc(); in a large data memory model, malloc() is equivalent to _fmalloc().

Returns:

A pointer to the start of the allocated memory, or NULL if there isn't sufficient memory available or the requested size is zero. The _bmalloc() function returns _NULLOFF if there is insufficient memory available, or if the requested size is zero.

Examples:

#include <stdlib.h>

void main()
  {
    char *buffer;

    buffer = (char *)malloc( 80 );
    if( buffer != NULL ) {

      /* body of program */

      free( buffer );
    }
  }

Classification:

malloc() is ANSI; _bmalloc(), _fmalloc(), _nmalloc() are WATCOM.
Safety:
Interrupt handler No
Signal handler No
Thread No

See also:

calloc(), _expand(), free(), halloc(), hfree(), _msize(), realloc(), sbrk()


[Previous]
[Contents]
[Next]