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) |