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 不为 NULLcb 为 0,则释放 pv 指向的内存。

CoTaskMemRealloc 返回指向重新分配 (的 void 指针,并可能移动) 内存块。 如果大小为 0 且缓冲区参数不为 NULL,或者没有足够的可用内存将块扩展到指定大小,则返回值为 NULL。 在第一种情况下,释放原始块;第二种情况中,原始块保持不变。

返回值将指向保证适当对齐任何类型的对象的存储的存储空间。 若要获取指向 void 以外的类型的指针,请对返回值使用类型强制转换。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc