Compartilhar via


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

callocRetorna um ponteiro para o espaço alocado.O espaço de armazenamento apontado pelo valor de retorno é garantido ser devidamente alinhado para o armazenamento de qualquer tipo de objeto.Para obter um ponteiro para um tipo diferente de void, use um tipo de projeção no valor de retorno.

Comentários

O calloc função aloca espaço de armazenamento para uma matriz de num elementos, cada um comprimento de size bytes.Cada elemento é inicializado para 0.

callocdefine errno para ENOMEM se uma alocação de memória falhar ou se a quantidade de memória solicitada excede _HEAP_MAXREQ.Para obter informações sobre este e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

callocchamadas malloc para usar o C++ _set_new_mode função para definir o novo modo de manipulador.O novo modo de manipulador indica se deve, em caso de falha, malloc é chamar a rotina manipuladora de novo conforme definido por _set_new_handler.Por padrão, malloc não chama a rotina manipuladora de novo em 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 manipuladora de novo na mesma maneira que o new operador oferece quando falhar pelo mesmo motivo.Para substituir o padrão, chamar.

_set_new_mode(1)

no início do seu programa, ou o vínculo com o NEWMODE.OBJ (see Opções de link).

Quando o aplicativo está vinculado com uma versão de depuração das bibliotecas de tempo de execução C, calloc resolve para _calloc_dbg.Para obter mais informações sobre como a pilha é gerenciada durante o processo de depuração, consulte A pilha de depuração CRT.

callocestá marcado como __declspec(noalias) e __declspec(restrict), que significa que a função é garantida que não modificar variáveis globais, e que o ponteiro retornado não é com alias.Para obter mais informações, consulte noalias e restringir.

Requisitos

Rotina

Cabeçalho necessário

calloc

<stdlib.h> e <malloc.h>

Para obter informações adicionais de 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 );
}
  

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Alocação de memória

livre

malloc

possível realocar