IMalloc::Realloc-Methode (objidlbase.h)
Ändert die Größe eines zuvor zugeordneten Speicherblocks.
Syntax
void * Realloc(
[in] void *pv,
[in] SIZE_T cb
);
Parameter
[in] pv
Ein Zeiger auf den Speicherblock, der neu zugeordnet werden soll. Dieser Parameter kann NULL sein, wie im Abschnitt Hinweise unten erläutert.
[in] cb
Die Größe des Speicherblocks, der neu zugeordnet werden soll, in Byte. Dieser Parameter kann 0 sein, wie im Abschnitt "Hinweise" unten erläutert.
Rückgabewert
Wenn die Methode erfolgreich ist, ist der Rückgabewert ein Zeiger auf den neu zugeordneten Speicherblock. Andernfalls ist er NULL.
Hinweise
Diese Methode ordnet einen Speicherblock neu zu, garantiert jedoch nicht, dass der Inhalt initialisiert wird. Daher ist der Aufrufer für die anschließende Initialisierung des Arbeitsspeichers verantwortlich. Der zugeordnete Block kann aufgrund des für die Ausrichtung und für Wartungsinformationen erforderlichen Speicherplatzes größer als cb Bytes sein.
Das argument pv zeigt auf den Anfang des Blocks. Wenn pvNULL ist, ordnet Realloc einen neuen Speicherblock auf die gleiche Weise zu wie IMalloc::Alloc . Wenn pv nicht NULL ist, sollte es sich um einen Zeiger handelt, der von einem vorherigen Aufruf von Alloc zurückgegeben wird.
Das Argument cb gibt die Größe des neuen Blocks in Bytes an. Der Inhalt des Blocks bleibt bis zum Minimum von neuer und alter Größe unverändert, obwohl sich der neue Block an einem anderen Speicherort befinden kann. Da sich der neue Block an einem anderen Speicherort befinden kann, ist der von Realloc zurückgegebene Zeiger nicht garantiert der Zeiger, der über das argument pv übergeben wird. Wenn pv nicht NULL und cb null ist, wird der speicher freigegeben, auf den pv verweist.
Realloc gibt einen void-Zeiger auf den neu zugeordneten (und möglicherweise verschobenen) Speicherblock zurück. Der Rückgabewert ist NULL , wenn die Größe 0 ist und das Pufferargument nicht NULL ist, oder wenn nicht genügend Arbeitsspeicher verfügbar ist, um den Block auf die angegebene Größe zu erweitern. Im ersten Fall wird der ursprüngliche Block freigegeben; im zweiten ist der ursprüngliche Block unverändert.
Der Rückgabewert zeigt auf einen Speicherplatz, der für die Speicherung eines beliebigen Objekttyps geeignet ist. Um einen Zeiger auf einen anderen Typ als void abzurufen, verwenden Sie eine Typumwandlung für den Rückgabewert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | objidlbase.h (include ObjIdl.h) |