_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.