calloc()

QNX SDP8.0C Library ReferenceAPIDeveloper

Allocate space for an array

Synopsis:

#include <stdlib.h>

void* calloc ( size_t n, 
               size_t size );

Arguments:

n
The number of array elements to allocate.
size
The size, in bytes, of one array element.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The calloc() function allocates space from the heap for an array of n objects, each of size bytes, and initializes them to 0. Use free() or realloc() to free the block of memory.

If n or size is zero, then calloc() returns a valid pointer with a size of zero, which can be passed to a corresponding call to free() or realloc(). You cannot assume that this pointer points to any valid memory.

The function checks for integer wraparound when calculating n*size and returns an error if wraparound occurs. This saves you from having to write manual checks. Thus, the maximum amount of memory you can allocate for an array is (size_t)−1, or SIZE_MAX.

Returns:

A pointer to the start of the allocated memory, or NULL if an error occurred (errno is set).

Errors:

ENOMEM
Not enough memory or address space.

Examples:

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    char* buffer;

    buffer = (char* )calloc( 80, sizeof(char) );
    if( buffer == NULL ) {
        printf( "Can't allocate memory for buffer!\n" );
        return EXIT_FAILURE;
    }

    free( buffer );

    return EXIT_SUCCESS;
}

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation pointNo
Signal handlerNo
ThreadYes
Page updated: