Share via


_recalloc

Uma combinação de realloc e calloc. Realoca uma matriz na memória e 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 alocado anteriormente.

  • num
    Número de elementos.

  • size
    Comprimento em bytes de cada elemento.

Valor de retorno

_recalloc Retorna um void 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 determinado dimensionar, o bloco original é esquerda inalterada e NULL será retornado.

Se o dimensionar solicitado for zero, em seguida, o bloco apontada por memblock é liberado; o valor retornado é NULL, e memblock é deixado apontando para um bloco liberado.

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

Como o novo bloco pode estar em um novo local de memória, o ponteiro retornado por _ recalloc Não há garantia de ser ponteiro passado para o memblock argumento.

In Visual C++ 2005, _recalloc Define errno para ENOMEM Se a alocação de memória falhar 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.

recalloc calls realloc in order to use the C++ _set_new_mode function to set the new handler mode.O novo modo de manipulador indica se, no caso de falha, realloc é telefonar a rotina manipuladora de novo sistema autônomo definido pelo _set_new_handler.Por padrão, realloc 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 _ recalloc Falha ao alocar memória, realloc 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 programa ou link com NEWMODE.OBJ.

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

_recalloc 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

_recalloc

<stdlib.h> e <malloc.h>

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

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.

Consulte também

Conceitos

Opções de link

Referência

Alocação de memória

_recalloc_dbg

_aligned_recalloc

_aligned_offset_recalloc

disponível