return the number of times that an item of a given size can be allocated


#include <malloc.h>
unsigned int _freect( size_t size );


The _freect() function returns the number of times that _nmalloc() (or malloc() in small data models) can be called to allocate a item of size bytes.

Note: In the small and medium memory models, the default data segment is only extended as needed to satisfy requests for memory allocation. Therefore, you need to call _nheapgrow() in these memory models before calling _freect() in order to get a meaningful result.


The number of calls.


#include <stdio.h>
#include <malloc.h>

void main()
    int  i;

    printf( "Can allocate %u longs before _nheapgrow\n",
        _freect( sizeof(long) ) );
    printf( "Can allocate %u longs after _nheapgrow\n",
        _freect( sizeof(long) ) );
    for( i = 1; i < 1000; i++ ) {
      _nmalloc( sizeof(long) );
    printf( "After allocating 1000 longs:\n" );
    printf( "Can still allocate %u longs\n",
        _freect( sizeof(long) ) );

produces the output:

Can allocate 0 longs before _nheapgrow
Can allocate 10447 longs after _nheapgrow
After allocating 1000 longs:
Can still allocate 9447 longs



Interrupt handler No
Signal handler No
Thread Yes

See also:

calloc(), _heapgrow(), malloc(), _memavl(), _memmax()