Share via


_aligned_recalloc_dbg

Altera o dimensionar de um bloco de memória que foi alocado com _aligned_malloc or _aligned_offset_malloc e inicializa a memória a 0 (somente versão de depurar).

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

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

  • [in]size
    O dimensionar 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 fonte que solicitou a operação de alocação ou NULL.

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

Valor de retorno

_aligned_recalloc_dbg Retorna um ponteiro nulo para o bloco de memória realocada (e possivelmente movidos). O valor retornado é NULL Se o dimensionar é zero e não é o argumento de buffer NULL, ou se não houver memória suficiente disponível para expandir o bloco para determinado dimensionar. No primeiro caso, o bloco original é liberado.No segundo caso, o bloco original é inalterado.O valor retornado aponta para um espaço de armazenamento que é garantido a ser alinhado adequadamente para o armazenamento de qualquer tipo de objeto.Para obter um ponteiro para um tipo diferente de void, use um tipo convertido no valor retornado.

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

Comentários

_aligned_recalloc_dbg é uma versão de depurar das _aligned_recalloc função. Quando _DEBUG não estiver definido, cada telefonar para _aligned_recalloc_dbg é reduzido a uma telefonar para _aligned_recalloc. Ambos os _aligned_recalloc e _aligned_recalloc_dbg realocar um bloco de memória no heap de base, mas _aligned_recalloc_dbg acomoda vários recursos de depuração: buffers em ambos os lados da parte do usuário do bloco para testar se há vazamentos, um bloco de parâmetro para controlar os tipos de alocação específica e de tipofilename/linenumber informações para determinar a origem de solicitações de alocação.

_aligned_recalloc_dbg realoca o bloco de memória especificada com um pouco mais espaço que o dimensionar solicitado (num * size) que pode ser maior ou menor que o dimensionar do bloco de memória alocada originalmente. O espaço adicional é usado pelo Gerenciador de heap de depurar para vincular os blocos de memória de depurar e para fornecer o aplicativo com informações de cabeçalho de depurar e substituir os buffers.A realocação pode resultar em movimentar o bloco de memória original para um local diferente no heap, bem sistema autônomo alterar o dimensionar do bloco de memória.A parte do usuário do bloco está preenchida com o valor 0xCD e buffers de substituir são preenchidos com 0xFD.

In Visual C++ 2005, _aligned_recalloc_dbg Define errno para ENOMEM Se uma alocação de memória falha; EINVAL será 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 parâmetros. If 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 for permitida para continuar, esta função retorna NULL e conjuntos errno para EINVAL.

Para obter informações sobre como os blocos de memória são alocados, inicializado e gerenciado na versão de depurar do heap de base, consulte A pilha de depurar e gerenciamento de memória.Para obter informações sobre as diferenças entre chamando uma função de heap padrão em vez de sua versão de depurar em uma compilação de depurar de um aplicativo, consulte Usando a versão de depurar e a versão base.

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 depurar de Bibliotecas de time de execução c somente.

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

Referência

Rotinas de depurar