Поделиться через


Функция CoTaskMemRealloc (combaseapi.h)

Изменяет размер ранее выделенного блока памяти задач.

Синтаксис

LPVOID CoTaskMemRealloc(
  [in, optional] LPVOID pv,
  [in]           SIZE_T cb
);

Параметры

[in, optional] pv

Указатель на перераспределенный блок памяти. Этот параметр может иметь значение NULL, как описано в разделе Примечания.

[in] cb

Размер перераспределенного блока памяти в байтах. Этот параметр может иметь значение 0, как описано в разделе Примечания.

Возвращаемое значение

Если функция выполняется успешно, она возвращает перераспределенный блок памяти. В противном случае возвращается значение NULL.

Комментарии

Эта функция изменяет размер ранее выделенного блока памяти так же, как iMalloc::Realloc . Нет необходимости вызывать функцию CoGetMalloc , чтобы получить указатель на распределитель OLE перед вызовом CoTaskMemRealloc.

Параметр pv указывает на начало блока памяти. Если pv имеет значение NULL, CoTaskMemRealloc выделяет новый блок памяти так же, как функция CoTaskMemAlloc . Если pv не равно NULL, это должен быть указатель, возвращенный предыдущим вызовом CoTaskMemAlloc.

Параметр cb задает размер нового блока. Содержимое блока в пределах наименьшего из нового и старого размеров остается неизменным, хотя новый блок может находиться в другом расположении. Так как новый блок может находиться в другом расположении памяти, указатель, возвращаемый CoTaskMemRealloc , не гарантируется, что он будет указателем, передаваемым через аргумент pv . Если pv не имеет значение NULL , а cb равен 0, то память, на которую указывает pv , освобождается.

CoTaskMemRealloc возвращает пустой указатель на перераспределенный (и, возможно, перемещенный) блок памяти. Возвращаемое значение равно NULL , если размер равен 0, а аргумент буфера не равен NULL, или если недостаточно памяти для расширения блока до указанного размера. В первом случае исходный блок освобождается; во втором случае исходный блок не изменяется.

Пространство в хранилище, на которое указывает возвращаемое значение, гарантированно выровнено подходящим для хранения любого типа объектов образом. Чтобы получить указатель на тип, отличный от void, используйте приведение типа для возвращаемого значения.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header combaseapi.h (включая Objbase.h)
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc