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