Freigeben über


IMalloc::Realloc-Methode (objidl.h)

Ändert die Größe eines zuvor zugewiesenen 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 Anmerkungen unten erläutert.

[in] cb

Die Größe des Speicherblocks, der neu zugeordnet werden soll, in Bytes. Dieser Parameter kann 0 sein, wie im Abschnitt Anmerkungen unten erläutert.

Rückgabewert

Wenn die Methode erfolgreich ist, ist der Rückgabewert ein Zeiger auf den neu zugeordneten Speicherblock. Andernfalls ist es NULL.

Hinweise

Diese Methode ordnet einen Speicherblock neu zu, garantiert aber nicht, dass sein Inhalt initialisiert wird. Daher ist der Aufrufer für die anschließende Initialisierung des Arbeitsspeichers verantwortlich. Der zugewiesene Block kann aufgrund des für die Ausrichtung und für Wartungsinformationen benötigten Speicherplatz größer als cb Bytes sein.

Das pv-Argument zeigt auf den Anfang des Blocks. Wenn pvNULL ist, weist 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 cb-Argument 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 nicht garantiert, dass der von Realloc zurückgegebene Zeiger der Zeiger ist, der durch das pv-Argument übergeben wird. Wenn pv nicht NULL und cb null ist, wird der speicher freigegeben, auf den von pv verwiesen wird.

Realloc gibt einen Leerzeichenzeiger auf den neu zugewiesenen (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. in der 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 einen Typ, der für den Rückgabewert umgewandelt wird.

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 objidl.h (include ObjIdl.h)

Weitere Informationen

IMalloc