Compartir a través de


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

Cambia el tamaño de un bloque de memoria asignado previamente.

Sintaxis

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

Parámetros

[in] pv

Puntero al bloque de memoria que se va a reasignar. Este parámetro puede ser NULL, como se describe en la sección Comentarios a continuación.

[in] cb

Tamaño del bloque de memoria que se va a reasignar, en bytes. Este parámetro puede ser 0, como se describe en la sección Comentarios a continuación.

Valor devuelto

Si el método se ejecuta correctamente, el valor devuelto es un puntero al bloque de memoria reasignado. De lo contrario, es NULL.

Comentarios

Este método reasigna un bloque de memoria, pero no garantiza que se inicialice su contenido. Por lo tanto, el autor de la llamada es responsable de inicializar posteriormente la memoria. El bloque asignado puede ser mayor que cb bytes debido al espacio necesario para la alineación y para la información de mantenimiento.

El argumento pv apunta al principio del bloque. Si pv es NULL, Realloc asigna un nuevo bloque de memoria de la misma manera que lo hace IMalloc::Alloc . Si pv no es NULL, debe ser un puntero devuelto por una llamada anterior a Alloc.

El argumento cb especifica el tamaño del nuevo bloque, en bytes. El contenido del bloque es igual hasta el más pequeño de los tamaños nuevo y antiguo, aunque el bloque nuevo puede estar en otra ubicación. Dado que el nuevo bloque puede estar en una ubicación de memoria diferente, no se garantiza que el puntero devuelto por Realloc sea el puntero pasado a través del argumento pv . Si pv no es NULL y cb es cero, se libera la memoria a la que apunta pv .

Realloc devuelve un puntero void al bloque de memoria reasignado (y posiblemente movido). El valor devuelto es NULL si el tamaño es cero y el argumento del búfer no es NULL o si no hay suficiente memoria disponible para expandir el bloque al tamaño especificado. En el primer caso, se libera el bloque original; en el segundo, el bloque original no cambia.

Se garantiza que el espacio de almacenamiento al que apunta el valor devuelto esté alineado correctamente para el almacenamiento de todo tipo de objeto. Para obtener un puntero a un tipo distinto de void, use una conversión de tipo en el valor devuelto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objidlbase.h (incluya ObjIdl.h)

Consulte también

IMalloc