_aligned_malloc_dbg
Aloca memória em um limite de alinhamento especificado com espaço adicional para um cabeçalho de depuração e buffers de substituição (apenas versão de depuração).
void * _aligned_malloc_dbg( size_t size, size_t alignment, const char *filename, int linenumber );
Parâmetros
[in] size
Tamanho da alocação de memória solicitada.[in] alignment
O valor de alinhamento, que deve ser um inteiro elevado à segunda potência.[in] filename
Ponteiro para o nome do arquivo de origem que solicitou a operação de alocação ou NULL.[in] 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 alocado ou NULL, se a operação tiver falhado.
Comentários
_aligned_malloc_dbg é uma versão de depuração da função _aligned_malloc. Quando _DEBUG não está definido, cada chamada a _aligned_malloc_dbg é reduzida a uma chamada para _aligned_malloc. O _aligned_malloc e o _aligned_malloc_dbg alocam um bloco de memória no heap de base, mas o _aligned_malloc_dbg oferece vários recursos de depuração: buffers em cada lado da parte do usuário do bloco para testar se há vazamentos e informações de filename/linenumber para determinar a origem das solicitações de alocação.
_aligned_malloc_dbg aloca o bloco de memória com um pouco mais de espaço que o size solicitado. O espaço adicional é usado pelo gerenciador de heaps de depuração para vincular os blocos de memória de depuração e fornecer informações do cabeçalho de depuração ao aplicativo e substituir buffers. Quando um 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_malloc_dbg define errno para ENOMEM se uma alocação de memória falhar ou se a quantidade de memória necessária (incluindo a sobrecarga mencionada anteriormente) exceder _HEAP_MAXREQ. Para obter informações sobre esse e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr. Além disso, valida seus parâmetros. Se alignment não for uma potência de 2 ou se size for zero, essa função chama um manipulador de parâmetro inválido, como 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 alocados, inicializados e gerenciados na versão de depuração do heap de base, consulte Detalhes da pilha de depuração CRT. For information about the allocation block types and how they are used, see Types of Blocks on the Debug Heap. Para obter informações sobre as diferenças entre chamar uma função heap padrão e sua versão de depuração em uma compilação de depuração de um aplicativo, consulte Versões de depuração das funções de alocação da pilha.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_aligned_malloc_dbg |
<crtdbg.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.
Libraries
Somente versões de depuração de bibliotecas de tempo de execução C.
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.