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


Метод IMalloc::Realloc (objidl.h)

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

Синтаксис

void * Realloc(
  [in] void   *pv,
  [in] SIZE_T cb
);

Параметры

[in] pv

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

[in] cb

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

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

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

Комментарии

Этот метод перераспределяет блок памяти, но не гарантирует инициализацию его содержимого. Таким образом, вызывающий объект отвечает за последующую инициализацию памяти. Выделенный блок может быть больше кб байтов из-за пространства, необходимого для выравнивания и для сведений об обслуживании.

Аргумент pv указывает на начало блока. Если pv имеет значение NULL, Realloc выделяет новый блок памяти так же, как iMalloc::Alloc . Если pv не равно NULL, это должен быть указатель, возвращенный предыдущим вызовом Alloc.

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h (включая ObjIdl.h)

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

IMalloc