stdlib.h


Función calloc ANSI C

void *calloc(size_t nmemb, size_t tamanyo);

Adjudica espacio para un array de nmemb objetos, cada cual tiene como tamaño tamanyo. El espacio es inicializado a cero todos los bits.

Valor de retorno:

La función calloc retorna o bien un puntero nulo o bien un puntero al espacio adjudicado.

Ejemplo:

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

int main( void )
{
   int *numPtr, i;
   size_t tamanyo=0;

   printf( "Introduzca el tamaño de la lista: " );
   scanf( "%d", &tamanyo );

   puts( "Adjudicamos espacio a la lista (con calloc)." );
   numPtr = (int *)calloc( tamanyo, sizeof(int) );

   for( i=0; i<tamanyo-1; i++ )
      printf( "%d, ", numPtr[i] = rand() % 100 + 1 );
   printf( "%d\n", numPtr[i] = rand() % 100 + 1 );

   numPtr = (int *)realloc( numPtr, tamanyo/=2 );
   printf( "Recortamos la lista a la mitad: %d\n", tamanyo );
   for( i=0; i<tamanyo-1; i++ )
      printf( "%d, ", numPtr[i] );
   printf( "%d\n", numPtr[i] );

   puts( "Liberamos el espacio (con realloc)." );
   realloc( numPtr, 0 );    /* Una forma poco ortodoxa, pero válida, de liberar espacio */

   return 0;
}