_aligned_offset_malloc_dbg
Aloca memória em um limite de alinhamento especificado (somente a versão de depuração).
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parâmetros
[in]size
O tamanho 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 origem que solicitou a operação de alocação ou nulo.[in]linenumber
O número no arquivo de origem onde a operação de alocação foi solicitada de linha ou NULL.
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 depuração do _aligned_offset_malloc função.Quando _ Debug não está definido, cada chamada para _aligned_offset_malloc_dbg é reduzido a uma chamada para _aligned_offset_malloc.Ambos _aligned_offset_malloc e _aligned_offset_malloc_dbg alocar um bloco de memória na pilha de base, mas _aligned_offset_malloc_dbg oferece vários recursos de depuração: buffers em ambos os lados da parte do bloco para testar se há vazamento, um parâmetro de tipo de bloco para controlar os tipos de alocação específica de usuário e filename/linenumber informações para determinar a origem de solicitações de alocação.
_aligned_offset_malloc_dbgaloca o bloco de memória com um pouco mais espaço que o solicitado size.O espaço adicional é usado pelo Gerenciador de heap do debug para vincular os blocos de memória de depuração e para fornecer o aplicativo com informações de cabeçalho de depuração e sobrescrever os buffers.Quando o bloco é alocado, a parte do usuário do bloco é preenchida com o valor 0xCD e cada um dos buffers de substituição são preenchidas 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_dbgse baseia em malloc; Para obter mais informações, consulte malloc.
Essa função define errno para ENOMEM se a alocação de memória falhou ou o tamanho solicitado era maior do que _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 seus parâmetros.Se 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 terá permissão para continuar, esta função retorna NULL e define errno para EINVAL.
Para obter informações sobre como blocos de memória são alocados, inicializados e gerenciados na versão de depuração da pilha base, consulte Gerenciamento de memória e a pilha de depuração.
Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no Heap Debug.
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 depuração de bibliotecas de tempo de execução c somente.
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.