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; }