Compartilhar via


_aligned_offset_realloc_dbg

Altera o tamanho de um bloco de memória alocado com _aligned_malloc ou _aligned_offset_malloc (somente versão de depuração).

void * _aligned_offset_realloc_dbg(    void *memblock,     size_t size,     size_t alignment,    size_t offset,    const char *filename,    int linenumber  );

Parâmetros

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

  • [in] size
    O tamanho da alocação de memória.

  • [in] alignment
    O valor de alinhamento, que deve ser um inteiro elevado à segunda potência.

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

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

  • [in] linenumber
    Número da linha do arquivo de origem em que a operação aligned_offset_realloc foi solicitada ou NULL.

Valor de retorno

_aligned_offset_realloc_dbg retorna um ponteiro nulo para o bloco de memória realocado (e possivelmente migrado). O valor retornado é NULL se o tamanho for zero e o argumento do buffer não for NULL, ou se não houver memória suficiente para expandir o bloco para o tamanho determinado. No primeiro caso, o bloco original é liberado. No segundo caso, ele permanece inalterado. O valor retornado indica um espaço de armazenamento que sempre está sutilmente alinhado para armazenamento de qualquer tipo de objeto. Para obter um ponteiro para um tipo que não seja nulo, digite a conversão no valor retornado.

Comentários

_aligned_offset_realloc_dbg é uma versão de depuração da função _aligned_offset_realloc. Quando _DEBUG não está definido, cada chamada a _aligned_offset_realloc_dbg é reduzida a uma chamada a _aligned_offset_realloc. Tanto _, quanto realocam um bloco de memória no heap básico, mas acomoda diversos recursos de depuração: buffers dos dois lados da porção do usuário do bloco para verificar se há perdas, um parâmetro de tipo de bloco para acompanhar tipos específicos de alocação e informações filename/linenumber para determinar a origem das solicitações de alocação.

Assim como _aligned_offset_malloc, _aligned_offset_realloc_dbg permite que uma estrutura seja alinhada em um deslocamento dentro da estrutura.

_realloc_dbg realoca o bloco de memória especificado com um pouco mais de espaço que o newSize solicitado. newSize pode ser maior ou menor que o espaço do bloco de memória alocado originalmente. O espaço adicional é usado pelo gerenciador de heaps de depuração para vincular os blocos de memória de depuração e fornecer informações do cabeçalho de depuração ao aplicativo e substituir buffers. A realocação pode resultar no deslocamento do bloco de memória original para outro local do heap e alterar o tamanho do bloco de memória. Se o bloco de memória for movido, o conteúdo do bloco original será substituído.

Essa função define errno como ENOMEM se a alocação da memória tiver falhado ou se o tamanho solicitado for maior que _HEAP_MAXREQ. Para obter mais informações sobre errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr. Além disso, _aligned_offset_realloc_dbg valida seus parâmetros. Se alignment não for um número elevado à segunda potência ou se offset for maior que ou igual a size e diferente de zero, essa função invoca o manipulador de parâmetro inválido, como descrito em Validação do parâmetro. Se a execução puder continuar, essa função retornará NULL e definirá errno como EINVAL.

Para obter informações sobre como os blocos de memória são alocados, inicializados e gerenciados na versão de depuração do heap de base, consulte Detalhes da pilha de depuração CRT. Para obter informações sobre os tipos de blocos de alocação e como eles são usados, consulte Tipos de blocos na heap de depuração. Para obter informações sobre as diferenças entre chamar uma função heap padrão e sua versão de depuração em uma compilação de depuração de um aplicativo, consulte Versões de depuração das funções de alocação da pilha.

Requisitos

Rotina

Cabeçalho necessário

_aligned_offset_realloc_dbg

<crtdbg.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Bibliotecas

Somente versões de depuração de bibliotecas de tempo de execução C.

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