Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aloca memória em um limite de alinhamento especificado (somente versão de depuração).
Sintaxe
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parâmetros
size
Tamanho da alocação de memória solicitada.
alignment
O valor de alinhamento, que deve ser um inteiro elevado à segunda potência.
offset
O deslocamento na alocação de memória para forçar o alinhamento.
filename
Ponteiro para o nome do arquivo de origem que solicitou a operação de alocação ou NULL.
linenumber
Número da linha no arquivo de origem em que a operação de alocação foi solicitada ou NULL.
Valor retornado
Um ponteiro para o bloco de memória alocado ou NULL, se a operação tiver falhado.
Comentários
_aligned_offset_malloc_dbg é uma versão de depuração da _aligned_offset_malloc função. Quando _DEBUG não estiver definido, cada chamada para _aligned_offset_malloc_dbg é reduzida a uma chamada para _aligned_offset_malloc. _aligned_offset_malloc e _aligned_offset_malloc_dbg alocam um bloco de memória no heap de base, mas _aligned_offset_malloc_dbg oferece vários recursos de depuração: buffers nos dois lados da parte do usuário do bloco para testar se há perdas e informações de filename/linenumber para determinar a origem das solicitações de alocação. O acompanhamento de tipos de alocação específicos com um parâmetro de tipo de bloco não é um recurso de depuração compatível com alocações alinhadas. As alocações alinhadas aparecerão como um tipo de _NORMAL_BLOCK bloco.
_aligned_offset_malloc_dbg aloca o bloco de memória com um pouco mais de espaço que o size solicitado. O espaço extra é usado pelo gerenciador de heap de depuração para vincular os blocos de memória de depuração e fornecer ao aplicativo informações de cabeçalho de depuração e buffers de substituição. Quando o bloco é alocado, a parte do usuário do bloco é preenchida com o valor 0xCD e cada um dos buffers de substituição é preenchido com 0xFD.
_aligned_offset_malloc_dbg é útil em situações em que o alinhamento é 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.
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_malloc valida seus parâmetros. Se alignment não for uma potência de 2 ou se offset for diferente de zero e maior ou igual a size, essa função invocará o manipulador de parâmetro inválido, conforme descrito em Validação de 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 base, consulte Detalhes do heap de depuração do CRT.
Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no heap de depuração.
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
_aligned_offset_malloc_dbg |
<crtdbg.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Somente versões de depuração de bibliotecas de tempo de execução C.