_aligned_offset_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_offset_recalloc_dbg(
   void *memblock, 
   size_t num, 
   size_t size, 
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

Parâmetros

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

  • [in]num
    Número de elementos.

  • [in]size
    Comprimento em bytes de cada elemento.

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

  • [in]offset
    O deslocamento para a alocação de memória para forçar o alinhamento.

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

  • [in]linenumber
    O número no arquivo de origem de linha em que o realloc operação foi solicitada ou nulo.

Valor de retorno

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

Comentários

_aligned_offset_realloc_dbgé uma versão de depuração do _aligned_offset_recalloc função.Quando _ Debug não está definido, cada chamada para _aligned_offset_recalloc_dbg é reduzido a uma chamada para _aligned_offset_recalloc.Ambas as _aligned_offset_recalloc e _aligned_offset_recalloc_dbg realocar um bloco de memória na pilha de base, mas _aligned_offset_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_offset_realloc_dbgrealoca o bloco de memória especificada com um pouco mais espaço que o solicitado newSize.newSizepode 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.Se o bloco de memória for movido, o conteúdo do bloco original é substituído.

Essa função define errno para ENOMEM se a alocação de memória falha ou se o tamanho solicitado (num * size) era maior do que _HEAP_MAXREQ.Para obter mais informações sobre o errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.Além disso, _aligned_offset_recalloc_dbg valida os seus parâmetros.Se alignment não é uma potência de 2 ou se offset é maior ou igual ao tamanho solicitado e diferente de zero, 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 os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no Heap Debug.Para obter informações sobre as diferenças entre chamar uma função de heap padrão e sua versão de depuração em uma compilação de depuração de um aplicativo, consulte usando a depurar versão na Base de versão.

Requisitos

Rotina

Cabeçalho necessário

_aligned_offset_recalloc_dbg

<malloc.h>

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

Alinhamento de dados