Condividi tramite


Funzione CoTaskMemRealloc (combaseapi.h)

Modifica le dimensioni di un blocco di attività allocato in precedenza.

Sintassi

LPVOID CoTaskMemRealloc(
  [in, optional] LPVOID pv,
  [in]           SIZE_T cb
);

Parametri

[in, optional] pv

Puntatore al blocco di memoria da riallocare. Questo parametro può essere NULL, come illustrato in Osservazioni.

[in] cb

Dimensioni del blocco di memoria da riallocare in byte. Questo parametro può essere 0, come illustrato in Osservazioni.

Valore restituito

Se la funzione ha esito positivo, restituisce il blocco di memoria riallocato. In caso contrario, restituisce NULL.

Commenti

Questa funzione modifica le dimensioni di un blocco di memoria allocato in precedenza nello stesso modo in cui viene eseguito IMalloc::Realloc . Non è necessario chiamare la funzione CoGetMalloc per ottenere un puntatore all'allocatore OLE prima di chiamare CoTaskMemRealloc.

Il parametro pv punta all'inizio del blocco di memoria. Se pv è NULL, CoTaskMemRealloc alloca un nuovo blocco di memoria nello stesso modo della funzione CoTaskMemAlloc . Se pv non è NULL, deve essere un puntatore restituito da una chiamata precedente a CoTaskMemAlloc.

Il parametro cb specifica le dimensioni del nuovo blocco. Il contenuto del blocco rimane invariato fino alla più breve dimensione, tra la nuova e la precedente, anche se il nuovo blocco può trovarsi in una posizione diversa. Poiché il nuovo blocco può trovarsi in una posizione di memoria diversa, il puntatore restituito da CoTaskMemRealloc non è garantito che il puntatore venga passato tramite l'argomento pv . Se pv non è NULL e cb è 0, la memoria puntata da pv viene liberata.

CoTaskMemRealloc restituisce un puntatore void al blocco di memoria reallocato (e possibilmente spostato). Il valore restituito è NULL se la dimensione è 0 e l'argomento del buffer non è NULL o se non è disponibile memoria sufficiente per espandere il blocco alle dimensioni specificate. Nel primo caso, il blocco originale viene liberato; nel secondo caso, il blocco originale è invariato.

Lo spazio di archiviazione a cui punta il valore restituito garantisce il corretto allineamento per l'archiviazione di qualsiasi tipo di oggetto. Per ottenere un puntatore a un tipo diverso da void, usare un cast di tipi sul valore restituito.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

Cotaskmemalloc

CoTaskMemFree

IMalloc::Realloc