Описание функций Си

       

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; }



Содержание раздела