IMalloc::Realloc 方法 (objidlbase.h)
變更先前配置的記憶體區塊大小。
語法
void * Realloc(
[in] void *pv,
[in] SIZE_T cb
);
參數
[in] pv
要重新配置之內存區塊的指標。 此參數可以是 NULL,如下面的一節所述。
[in] cb
要重新配置的記憶體區塊大小,以位元組為單位。 此參數可以是 0,如下面的一節所述。
傳回值
如果方法成功,則傳回值是重新配置記憶體區塊的指標。 否則為 NULL。
備註
這個方法會重新配置記憶體區塊,但不保證其內容已初始化。 因此,呼叫端負責後續初始化記憶體。 已配置的區塊可能會大於 cb 位元組,因為對齊和維護資訊所需的空間。
pv 自變數指向區塊的開頭。 如果 pv 為 NULL,Realloc 會以與 IMalloc::Alloc 相同的方式配置新的記憶體區塊。 如果 pv 不是 NULL,它應該是 Alloc 之前呼叫所傳回的指標。
cb 自變數會以位元組為單位指定新區塊的大小。 區塊的內容維持為新舊大小的較短者,不過新區塊可能在不同的位置。 因為新區塊可以位於不同的記憶體位置, 所以 Realloc 傳回的指標不保證是透過 pv 自變數傳遞的指標。 如果 pv 不是 NULL 且 cb 為零, 則會釋放 pv 所指向的記憶體。
Realloc 會傳回重新配置 (的 void 指標,並可能移動) 記憶體區塊。 如果大小為零且緩衝區自變數不是 NULL,或沒有足夠的記憶體可用,則傳回值為 NULL,以將區塊展開為指定的大小。 在第一個案例中,會釋放原始區塊;在第二個中,原始區塊不會變更。
傳回值所指向的儲存空間一定可以適當地對齊任何物件類型之儲存區的保證。 若要取得 void 以外的類型指標,請在傳回值上使用類型轉換。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | objidlbase.h (包含 ObjIdl.h) |