Была ли эта страница полезной?
Ваш отзыв об этом контенте важен для нас. Расскажите нам о том, что вы думаете.
Дополнительный отзыв?
1500 символов осталось
Экспорт (0) Печать
Развернуть все
Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

_aligned_offset_realloc_dbg

Изменяет размер блока памяти, который был выделен с помощью функции _aligned_malloc или _aligned_offset_malloc (только отладочная версия).

void * _aligned_offset_realloc_dbg(    void *memblock,     size_t size,     size_t alignment,    size_t offset,    const char *filename,    int linenumber  );

[входной] memblock

Указатель текущего блока памяти.

[входной] size

Размер выделения памяти.

[входной] alignment

Значение выравнивания, которое должно быть степенью двойки.

[входной] offset

Смещение в выделение памяти для принудительного выполнения выравнивания.

[входной] filename

Указатель на имя исходного файла, который запросил операцию aligned_offset_realloc, или NULL.

[входной] linenumber

Номер строки в исходном файле, в которой была запрошена операция aligned_offset_realloc, или NULL.

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

_aligned_offset_realloc_dbg — это отладочная версия функции _aligned_offset_realloc. Если _DEBUG не определен, каждый вызов функции _aligned_offset_realloc_dbg сокращается до вызова функции _aligned_offset_realloc. И _aligned_offset_realloc, и _aligned_offset_realloc_dbg выполняют перераспределение блока памяти в основной куче, однако _aligned_offset_realloc_dbg включает различные функции отладки: буферы на обеих сторонах пользовательской части блока для тестирования утечек, параметр типа блока для отслеживания конкретных типов выделения, а также сведения о filename/linenumber для определения источника запросов на выделение.

Как и _aligned_offset_malloc, _aligned_offset_realloc_dbg позволяет выполнить выравнивание структуры со смещением в пределах структуры.

_realloc_dbg повторно выделяет указанный блок памяти, добавив немного больше пространства, чем запрошено newSize. newSize может быть больше или меньше размера первоначально выделенного блока памяти. Дополнительное пространство используется диспетчером кучи отладки, чтобы связать блоки памяти отладки и предоставить приложению сведения о заголовке отладки и буферы перезаписи. Перераспределение может привести к перемещению исходного блока памяти в другое расположение в куче, а также к изменению размера блока памяти. Если блок памяти перемещен, содержимое исходного блока перезаписывается.

Эта функция задает для errno значение ENOMEM в случае сбоя выделения памяти или если запрошенный размер был больше _HEAP_MAXREQ. Дополнительные сведения о errno см. в разделе errno, _doserrno, _sys_errlist, and _sys_nerr. Кроме того, _aligned_offset_realloc_dbg проверяет свои параметры. Если значение alignment не является степенью числа 2 или offset больше или равно size и не равно нулю, эта функция вызывает обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL и задает для errno значение EINVAL.

Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии основной кучи см. в разделе Сведения о куче отладки CRT. Сведения о типах блоков выделения и о том, как они используются, см. в разделе Типы блоков в отладочной куче. Сведения о различиях между вызовом стандартной функции кучи и ее отладочной версии в сборке отладки приложения см. в разделе Версии отладки функций выделения кучи.

Подпрограмма

Требуемый заголовок

_aligned_offset_realloc_dbg

<crtdbg.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Библиотеки

Только отладочные версии библиотек времени выполнения языка C.

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызова неуправляемого кода.

Добавления сообщества

Показ:
© 2015 Microsoft