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 参数指向内存块的开头。 如果 pv 为 NULL, 则 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)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc