Share via


_recalloc

Uma combinação de realloc e calloc.Realoca uma matriz na memória e o inicializa seus elementos como 0.

void *_recalloc( 
   void *memblock
   size_t num,
   size_t size 
);

Parâmetros

  • memblock
    Ponteiro para o bloco de memória alocada anteriormente.

  • num
    Número de elementos.

  • size
    Comprimento em bytes de cada elemento.

Valor de retorno

_recallocRetorna um void o ponteiro para o bloco de memória realocada (e possivelmente movidos).

Se não houver memória suficiente disponível para expandir o bloco para o tamanho, o bloco original permanece inalterada, e NULL é retornado.

Se o tamanho solicitado é zero, então o bloco apontada por memblock é liberada. o valor de retorno é NULL, e memblock é deixado aponta um bloco liberado.

O valor de retorno aponta para um espaço de armazenamento que é garantido para 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 _recalloc função altera o tamanho de um bloco de memória alocada.O memblock argumento aponta para o início do bloco de memória.Se memblock é NULL, _recalloc se comporta da mesma maneira que calloc e aloca um novo bloco de num * size bytes.Cada elemento é inicializado para 0.Se memblock não é NULL, ele deve ser um ponteiro retornado por uma chamada anterior a calloc, malloc, ou possível realocar.

Como o novo bloco pode ser em um novo local de memória, o ponteiro retornado por _recalloc não é garantida para ser o ponteiro transmitido por meio do memblock argumento.

_recallocdefine errno para ENOMEM se a 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.

recallocchamadas realloc 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, realloc é chamar a rotina manipuladora de novo conforme definido por _set_new_handler.Por padrão, realloc 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 _recalloc Falha ao alocar memória, realloc 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 programa ou o vínculo com o NEWMODE.OBJ.

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

_recallocestá 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

_recalloc

<stdlib.h> e <malloc.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

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

_recalloc_dbg

_aligned_recalloc

_aligned_offset_recalloc

livre

Conceitos

Opções de link