CoTaskMemRealloc 函式 (combaseapi.h)

變更先前配置的工作記憶體區塊大小。

語法

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

參數

[in, optional] pv

要重新配置之內存區塊的指標。 此參數可以是 NULL,如所述。

[in] cb

要重新分配的記憶體區塊大小,以位元組為單位。 此參數可以是 0,如所述。

傳回值

如果函式成功,它會傳回重新配置記憶體區塊。 否則,它會傳回 NULL

備註

此函式會以 與 IMalloc::Realloc 相同的方式來變更先前配置的記憶體區塊大小。 呼叫 CoTaskMemRealloc 之前,不需要呼叫 CoGetMalloc 函式來取得 OLE 配置器的指標。

pv 參數指向記憶體區塊的開頭。 如果 pvNULL,CoTaskMemRealloc 會以與 CoTaskMemAlloc 函式相同的方式配置新的記憶體區塊。 如果 pv 不是 NULL,它應該是先前呼叫 CoTaskMemAlloc 所傳回的指標。

cb 參數會指定新區塊的大小。 區塊的內容維持為新舊大小的較短者,不過新區塊可能在不同的位置。 因為新區塊可以位於不同的記憶體位置, 所以 CoTaskMemRealloc 傳回的指標不保證是透過 pv 自變數傳遞的指標。 如果 pv 不是 NULL ,而 cb 是 0,則會釋放 pv 所指向的記憶體。

CoTaskMemRealloc 會傳回重新配置 (的 void 指標,並可能移動) 記憶體區塊。 如果大小為 0 且緩衝區自變數不是 NULL ,或沒有足夠的記憶體可用,可將區塊展開為指定的大小,則傳回值為 NULL。 在第一個案例中,會釋放原始區塊;第二個案例中,原始區塊不會變更。

傳回值所指向的儲存空間一定可以適當地對齊任何物件類型之儲存區的保證。 若要取得 void 以外的類型指標,請在傳回值上使用型別轉換。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 combaseapi.h (包含 Objbase.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc