calloc
Aloca uma matriz na memória com elementos inicializados como 0.
void *calloc(
size_t num,
size_t size
);
Parâmetros
num
Número de elementos.size
Comprimento em bytes de cada elemento.
Valor de retorno
calloc Retorna um ponteiro para o espaço alocado. O espaço de armazenamento apontado pelo valor retornado é garantido a ser alinhado adequadamente para o armazenamento de qualquer tipo de objeto.Ao obter um apontador para um tipo diferente de void, use um tipo convertido no valor retornado.
Comentários
The calloc função aloca espaço de armazenamento para uma matriz de num elementos, cada um comprimento size bytes. Cada elemento é inicializado para 0.
In Visual C++ 2005, calloc Define errno para ENOMEM Se falhar uma alocação de memória ou se exceder a quantidade de memória solicitada _HEAP_MAXREQ. Para obter informações sobre esse e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.
calloc chamadas malloc Para usar o C++ _set_new_mode função para conjunto o novo modo de manipulador.O novo modo de manipulador indica se, no caso de falha, malloc é telefonar a rotina manipuladora de novo sistema autônomo definido pelo _set_new_handler.Por padrão, malloc não telefonar a rotina manipuladora de novo no caso de falha ao alocar memória. Você pode substituir esse comportamento padrão para que, quando calloc Falha ao alocar memória, malloc chama a rotina de manipulador de novo na mesma forma que o new operador não quando ele falhar pelo mesmo motivo. Para substituir o padrão, ligue para
_set_new_mode(1)
no início do seu programa ou o vínculo com NEWMODE.OBJ (consulte Opções de link).
Quando o aplicativo está vinculado com uma versão de depurar de C em time de execução bibliotecas, calloc resolve para _calloc_dbg.Para obter mais informações sobre como a pilha é gerenciada durante o processo de depurar, consulte A Heap depurar CRT.
calloc está marcado como __declspec(noalias) e __declspec(restrict), que significa que a função tem a garantia não modificar variáveis global e que o ponteiro retornado não é com alias. Para obter mais informações, consulte noalias and restringir.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
calloc |
<stdlib.h> e <malloc.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// 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 );
}
Allocated 40 long integers
Equivalente do NET Framework
Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.