Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

allocmem

allocmem


Функция            Выделяет сегмент памяти DOS.

Синтаксис          #include<dos.h>
                   int allocmem(unsigned size, unsigned *segp);

Файл, содержащий   dos.h
прототип

Описание           allocmem для выделения блока свободной памяти
                   использует системный вызов DOS 0x48 и возвращает  в
                   качестве   результата  адрес  сегмента  выделенного
                   блока.

                   size - желаемый размер области памяти в  параграфах
                   (параграф  равен  16  байт).  segp  -  указатель на
                   слово,  которому  будет  присвоен  адрес   сегмента
                   нового   выделенного   блока  памяти.  Присваивание
                   адреса слову, указателем которого является segp, не
                   происходит,  если  запрашиваемого количества памяти
                   не имеется в наличии.

                   Все выделяемые блоки выравниваются по параграфам.

                   allocmem и malloc не могут использоваться вместе.

Возвращаемое       allocmem при успешном завершении возвра-
значение           щает значение -1. При возникновении ошибки
                   возвращается число (размер в параграфах наибольшего
                   блока памяти, имеющегося в наличии).

                   Ошибка, возвращаемая   из  allocmem,  устанавливает
                   _doserrno и глобальную переменную errno в

                     ENOMEM - Не хватает памяти

Переносимость      allocmem уникальна для DOS.
                   Функция не поддерживается Windows.

Смотрите также     coreleft,freemem,malloc,setblock.

Пример:

#include<dos.h>
#include<alloc.h>
#include<stdio.h>

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

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог