Allocmem
allocmem
Функция Выделяет сегмент памяти DOS.
Синтаксис #include
int allocmem(unsigned size, unsigned *segp);
Файл, содержащий dos.h прототип
Описание allocmem для выделения блока свободной памяти использует системный вызов DOS 0x48 и возв- ращает в качестве результата адрес сегмента выде- ленного блока.
size - желаемый размер области памяти в параграфах (параграф равен 16 байт). segp - указатель на слово, которому будет присвоен адрес сегмента нового выделенного блока памяти. Присваивания не происходит, если запрашиваемого количества памяти не имеется в наличии.
Все выделяемые блоки выравниваются по параграфам.
allocmem и malloc не могут использоваться вместе.
Возвращаемое allocmem при успешном завершении возвра- значение щает значение -1. При возникновении ошибки возвращается число (размер в параграфах наибольше- го блока памяти, имеющегося в наличии).
Ошибка, возвращаемая из allocmem, устанавливает _doserrno и глобальную переменную errno в
ENOMEM - Не хватает памяти
Переносимость allocmem уникальна для DOS.
Смотрите также
Пример:
#include
#include
#include
int main(void) { unsigned int size,segp; int stat;
size = 64; /* 64 * 16 = 1024 байта */ stat = allocmem(size,&segp); if(stat == -1) printf("Выделен сегмент памяти по адресу %x\n",segp); else printf("Ошибка! Допустимый максимальный размер = %u\n",stat); return 0; }