Compartilhar via


_aligned_offset_malloc_dbg

Aloca memória em um limite de alinhamento especificado (versão de depuração somente).

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

Parâmetros

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

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

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

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

  • [entrada] linenumber
    Número de linha no arquivo de origem em que a operação de alocação foi solicitada ou NULL.

Valor de retorno

Um ponteiro para o bloco de memória que foi atribuído a NULL ou se houve falha na operação.

Comentários

_aligned_offset_malloc_dbg é uma versão de depuração da função de _aligned_offset_malloc . Quando _DEBUG não for definido, cada chamada a _aligned_offset_malloc_dbg será reduzido para uma chamada a _aligned_offset_malloc. _aligned_offset_malloc e _aligned_offset_malloc_dbg atribuem um bloco de memória heap de base, mas ofertas de _aligned_offset_malloc_dbg vários recursos de depuração: buffers em ambos os lados da parte do usuário do bloco para testar que ignora, um parâmetro em blocos para controlar tipos específicos de alocação, e filename/informações delinenumber determina a origem de solicitações de alocação.

_aligned_offset_malloc_dbg atribui o bloco de memória com um pouco mais espaço do que sizesolicitado. O espaço adicional é usado pelo gerenciador de heap de depuração para vincular os blocos de memória de depuração e fornecer o aplicativo com informações de cabeçalho de depuração e para substituir os buffers. Quando o pacote é atribuído, a parte do usuário do bloco é preenchida com o valor 0xCD e cada um dos buffers substituir for preenchido com 0xFD.

_aligned_offset_malloc_dbg é útil em situações em que o alinhamento será necessário em um elemento aninhado; por exemplo, se o alinhamento foi necessário em uma classe aninhada.

_aligned_offset_malloc_dbg é baseado em malloc; para obter mais informações, consulte malloc.

Esta função define errno a ENOMEM se a alocação de memória falhou 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_malloc valida seus parâmetros. Se alignment não é uma potência de 2 ou se offset é maior ou igual a size e diferente de zero, essa função invoca o manipulador inválido do parâmetro, conforme 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 atribuídos, inicializados, e gerenciados na versão de depuração da heap de base, consulte Detalhes da pilha de depuração CRT.

Para obter informações sobre o bloco de alocação digitar e como elas são usadas, consulte Tipos de blocos no heap de depuração.

Requisitos

Rotina

Cabeçalho necessário

_aligned_offset_malloc_dbg

<crtdbg.h>

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

Bibliotecas

Versões de depuração das Bibliotecas em tempo de execução C somente.

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.

Consulte também

Referência

Rotinas de depuração