Compartilhar via


_aligned_recalloc_dbg

Altera o tamanho de um bloco de memória que foi alocado com _aligned_malloc ou _aligned_offset_malloc e inicializa a memória a 0 (somente a versão de depuração).

void * _aligned_recalloc_dbg(
   void * memblock, 
   size_t num,
   size_t size, 
   size_t alignment,
   const char *filename,
   int linenumber
);

Parâmetros

  • [in]memblock
    O ponteiro de bloco de memória atual.

  • [in]num
    O número de elementos.

  • [in]size
    O tamanho em bytes de cada elemento.

  • [in]alignment
    O valor de alinhamento, que deve ser uma potência inteira de 2.

  • [in]filename
    Ponteiro para o nome do arquivo de origem que solicitou a operação de alocação ou NULL.

  • [in]linenumber
    O número no arquivo de origem onde a operação de alocação foi solicitada de linha ou NULL.

Valor de retorno

_aligned_recalloc_dbgRetorna um ponteiro nulo para o bloco de memória realocada (e possivelmente movidos).O valor de retorno é NULL se o tamanho é zero e o argumento de buffer não é NULL, ou se não houver memória suficiente disponível para expandir o bloco para o tamanho.No primeiro caso, o bloco original é liberado.No segundo caso, o bloco original é inalterado.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 uma conversão no valor de retorno de tipo.

Ele é um erro para realocar a memória e alterar o alinhamento de um bloco.

Comentários

_aligned_recalloc_dbgé uma versão de depuração do _aligned_recalloc função.Quando _ Debug não está definido, cada chamada para _aligned_recalloc_dbg é reduzido a uma chamada para _aligned_recalloc.Ambos _aligned_recalloc e _aligned_recalloc_dbg realocar um bloco de memória na pilha de base, mas _aligned_recalloc_dbg acomoda os vários recursos de depuração: buffers em ambos os lados da parte do bloco para testar se há vazamento, um parâmetro de tipo de bloco para controlar os tipos de alocação específica de usuário e filename/linenumber informações para determinar a origem de solicitações de alocação.

_aligned_recalloc_dbgrealoca o bloco de memória especificada com um pouco mais espaço do que o tamanho solicitado (num * size) que pode ser maior ou menor que o tamanho do bloco de memória alocada originalmente.O espaço adicional é usado pelo Gerenciador de heap do debug para vincular os blocos de memória de depuração e para fornecer o aplicativo com informações de cabeçalho de depuração e sobrescrever os buffers.A realocação pode resultar em Mover o bloco de memória original para um local diferente na heap, bem como alterar o tamanho do bloco de memória.A parte do usuário do bloco é preenchida com o valor 0xCD e os buffers de substituição são preenchidos com 0xFD.

_aligned_recalloc_dbgdefine errno para ENOMEM se uma alocação de memória falhar; EINVALé retornado se a quantidade de memória necessária (incluindo a sobrecarga mencionada anteriormente) exceder _HEAP_MAXREQ.Para obter informações sobre este e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

Além disso, _aligned_recalloc_dbg valida os seus parâmetros.Se alignment não é uma potência de 2, essa função chama o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, esta função retorna NULL e define errno para EINVAL.

Para obter informações sobre como blocos de memória são alocados, inicializados e gerenciados na versão de depuração da pilha base, consulte Gerenciamento de memória e a pilha de depuração.Para obter informações sobre as diferenças entre chamando uma função de heap padrão em vez de sua versão de depuração em uma compilação de depuração de um aplicativo, consulte usando a depurar versão Versus a Base de versão.

Requisitos

Rotina

Cabeçalho necessário

_aligned_recalloc_dbg

<crtdbg.h>

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

Bibliotecas

Versões de depuração de bibliotecas de tempo de execução c somente.

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

Rotinas de depuração