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