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.

 Смотрите также     coreleftfreememmallocsetblock

 Пример:

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