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 |