setblock

Функция            Модифицирует размер ранее выделенного сегмента
                   памяти.

Синтаксис          #include
                   int setblock(unsigned segx, unsigned newsize);

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

Описание           setblock изменяет размер сегмента памяти. segx -
                   адрес сегмента, который был получен при вызове
                   функции allocmem. newsize - это новый необходимый
                   размер сегмента в параграфах.

Возвращаемое       setblock возвращает -1 при успешном завершении.
значение           При возникновении ошибки она возвращает размер
                   в параграфах самого большого блока и устанавлива-
                   ет соответствующее значение в переменной
                   _doserrno.

Переносимость      setblock уникальна для DOS.

Смотрите также      allocmem freemem

Пример:

#include
#include
#include
#include

int main(void)
{
   unsigned int size,segp;
   int stat;
   size = 64; /* выделить 1024 байта (16 * 64) */
   stat = allocmem(size,&segp);
   if(stat == -1)
      printf("Память выделена в сегменте %X\n",segp);
   else
   {
      printf("Ошибка. Максимальный размер блока: %d\n",stat);
      exit(1);
   }
   stat = setblock(segp,size*2);
   if(stat == -1)
      printf("Расширенный блок в сегменте %X\n",segp);
   else
      printf("Ошибка. Максимальный размер блока: %d\n",stat);
   freemem(segp);
   return 0;
}