Partilhar via


_aligned_offset_malloc_dbg

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

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

Parâmetros

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

  • [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 fonte que solicitou a operação de alocação ou nulo.

  • [in]linenumber
    Número no arquivo de fonte em que foi solicitada a operação de alocação de linha ou nulo.

Valor de retorno

Um ponteiro para o bloco de memória que foi alocado ou NULL Se a operação falhou.

Comentários

_aligned_offset_malloc_dbg é uma versão de depurar das _aligned_offset_malloc função. Quando _DEBUG não estiver definido, cada telefonar para _aligned_offset_malloc_dbg é reduzido a uma telefonar para _aligned_offset_malloc. Ambos os _aligned_offset_malloc e _aligned_offset_malloc_dbg alocar um bloco de memória no heap de base, mas _aligned_offset_malloc_dbg oferece 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_offset_malloc_dbg aloca o bloco de memória com um pouco mais espaço que o solicitado size. 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.Quando o bloco é alocado, a parte do usuário do bloco está preenchida com o valor 0xCD e cada um dos buffers de substituir são preenchidos com 0xFD.

_aligned_offset_malloc_dbg é útil em situações onde o alinhamento é necessária em um elemento aninhado; por exemplo, se o alinhamento era necessária em uma classe aninhada.

_aligned_offset_malloc_dbg baseia-se em malloc; Para obter mais informações, consulte malloc.

In Visual C++ 2005, define essa função errno para ENOMEM Se a falha na alocação de memória ou se era maior do que o dimensionar solicitado _HEAP_MAXREQ. Para obter mais informações sobre o errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.Além disso, _aligned_offset_malloc valida os parâmetros. If alignment não é uma potência de 2 ou se offset é maior que ou igual a size 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 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 os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no Heap depurar.

Requisitos

Rotina

Cabeçalho necessário

_aligned_offset_malloc_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