Функция Модифицирует размер ранее выделенного сегмента
памяти.
Синтаксис #include
int setblock(unsigned segx, unsigned newsize);
Файл, содержащий dos.h
прототип
Описание setblock изменяет размер сегмента памяти. segx -
адрес сегмента, который был получен при вызове
функции allocmem. newsize - это новый необходимый
размер сегмента в параграфах.
Возвращаемое setblock возвращает -1 при успешном завершении.
значение При возникновении ошибки она возвращает размер
в параграфах самого большого блока и устанавлива-
ет соответствующее значение в переменной
_doserrno.
Переносимость setblock уникальна для DOS.
Смотрите также allocmemfreemem
Пример:
#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;
}