Compartilhar via


Método IMalloc::Realloc (objidlbase.h)

Altera o tamanho de um bloco de memória alocado anteriormente.

Sintaxe

void * Realloc(
  [in] void   *pv,
  [in] SIZE_T cb
);

Parâmetros

[in] pv

Um ponteiro para o bloco de memória a ser realocado. Esse parâmetro pode ser NULL, conforme discutido na seção Comentários abaixo.

[in] cb

O tamanho do bloco de memória a ser realocado, em bytes. Esse parâmetro pode ser 0, conforme discutido na seção Comentários abaixo.

Retornar valor

Se o método for bem-sucedido, o valor retornado será um ponteiro para o bloco de memória realocado. Caso contrário, ele será NULL.

Comentários

Esse método realoca um bloco de memória, mas não garante que seu conteúdo seja inicializado. Portanto, o chamador é responsável por inicializar posteriormente a memória. O bloco alocado pode ser maior que os bytes cb devido ao espaço necessário para alinhamento e para informações de manutenção.

O argumento pv aponta para o início do bloco. Se pv for NULL, Realloc alocará um novo bloco de memória da mesma maneira que IMalloc::Alloc . Se pv não for NULL, ele deverá ser um ponteiro retornado por uma chamada anterior para Alloc.

O argumento cb especifica o tamanho do novo bloco, em bytes. O conteúdo do bloco fica inalterado até o menor dos tamanhos novos e antigos, embora o novo bloco possa estar em um local diferente. Como o novo bloco pode estar em um local de memória diferente, não há garantia de que o ponteiro retornado por Realloc seja o ponteiro passado pelo argumento pv . Se pv não for NULL e cb for zero, a memória apontada por pv será liberada.

Realloc retorna um ponteiro nulo para o bloco de memória realocado (e possivelmente movido). O valor retornado será NULL se o tamanho for zero e o argumento buffer não for NULL ou se não houver memória suficiente disponível para expandir o bloco para o tamanho especificado. No primeiro caso, o bloco original é liberado; no segundo, o bloco original é inalterado.

O espaço de armazenamento ao qual o valor retornado apontou com certeza estará alinhado de modo adequado para armazenamento de qualquer tipo de objeto. Para obter um ponteiro para um tipo diferente de void, use uma conversão de tipo no valor retornado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidlbase.h (inclua ObjIdl.h)

Confira também

Imalloc