memalign()

Выделить память с выравниванием

Прототип:

#include <malloc.h>
void * memalign( size_t alignment,
size_t size );

Аргументы:

alignment
The alignment that you want to use for the memory. This must be a multiple of size( void * ).
size
The amount of memory you want to allocate, in bytes.

Библиотека:

libc

Описание:

The memalign() function allocates size bytes aligned on a boundary specified by alignment.


Note: Because the malloc() implementation uses signed, 32-bit integers to represent the size internally, you can't allocate more than 2 GB in a single allocation. If the size is greater than 2 GB, memalign() indicates an error of ENOMEM.

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

A pointer to the allocated block.

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

Коды ошибок:

EINVAL
The value of alignment isn't a multiple of size( void * ).
ENOMEM
There's insufficient memory available with the requested alignment.

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

free(), malloc(), posix_memalign()




Предыдущий раздел: Описание API системной библиотеки