Учись программированию на C++ Builder бесплатно!

Функция


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

Синтаксис


#include<dos.h>
int setblock(unsigned segx, unsigned newsize);

Прототип


dos.h

Описание


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

Возвращаемое значение


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

Переносимость


Функция setblock уникальна для DOS. Функция не совместима с Windows.

Пример


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

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

Поиск по сайту