¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

calloc

Asigna una matriz en memoria con elementos inicializado a 0.

void *calloc( 
   size_t num,
   size_t size 
);

num

Número de elementos.

size

Longitud en bytes de cada elemento.

calloc devuelve un puntero al espacio asignado. El espacio de almacenamiento designado por el valor devuelto se garantiza alinearse convenientemente para el almacenamiento de cualquier tipo de objeto. Para obtener un puntero a un tipo distinto de void, utilice una conversión de tipo del valor devuelto.

La función de calloc asigna espacio de almacenamiento para una matriz de elementos de num , cada uno de los bytes de size de longitud. Cada elemento se inicializa en 0.

calloc establece errno en ENOMEM si se produce un error al asignar una memoria o si la cantidad de memoria solicitada supera _HEAP_MAXREQ. Para obtener información sobre estos y otros códigos de error, vea errno, _doserrno, _sys_errlist y _sys_nerr.

llamadas malloc decalloc para usar la función de C++ _set_new_mode para establecer el nuevo modo de controlador. El nuevo modo de controlador indica si, en caso de error, malloc debe llamar a la nueva rutina de controlador como se establece por _set_new_handler. De forma predeterminada, malloc no llama a la nueva rutina del controlador si no se puede asignar memoria. Puede invalidar este comportamiento predeterminado para que, cuando calloc no puede asignar memoria, malloc llama a la nueva rutina de controlador de la misma manera que hace el operador new cuando produce errores por la misma razón. Para reemplazar el valor predeterminado, llame

_set_new_mode(1)

al principio del programa, o vincularlo con NEWMODE.OBJ (vea Opciones de vínculo).

Cuando la aplicación se vincula con una versión de depuración de las bibliotecas en tiempo de ejecución de C, calloc resuelve a _calloc_dbg. Para obtener más información sobre cómo la pila se administra durante el proceso de depuración, vea El montón de depuración de CRT.

calloc es __declspec(noalias) marcado y __declspec(restrict), lo que significa que la función está garantizada para no modificar variables globales, y que el puntero devuelto no es con alias. Para obtener más información, vea noalias y limitado.

Rutina

Encabezado necesario

calloc

<stdlib.h> y <malloc.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

// crt_calloc.c
// This program uses calloc to allocate space for
// 40 long integers. It initializes each element to zero.
 
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   long *buffer;

   buffer = (long *)calloc( 40, sizeof( long ) );
   if( buffer != NULL )
      printf( "Allocated 40 long integers\n" );
   else
      printf( "Can't allocate memory\n" );
   free( buffer );
}
Asignado 40 enteros largos

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft