farfree
Функция Освобождает блок, выделенный в глобальной
динамической области памяти.
Синтаксис #include<alloc.h>
void farfree(void far * block);
Файл, содержащий alloc.h
прототип
Описание Функция farfree освобождает предварительно
выделенный в глобальной динамической области памяти
блок.
В модели памяти tiny эту функцию использовать
нельзя.
В моделях памяти small и medium блоки, выделенные
farmalloc, нельзя освободить функцией free и
наоборот, т.к. в этих моделях глобальная и
локальная области памяти различаются.
Возвращаемое Нет.
значение
Переносимость farfree уникальна для DOS.
Смотрите также farcalloc, farmalloc.
Пример:
#include<stdio.h>
#include<alloc.h>
#include<string.h>
#include<dos.h>
int main(void)
{
char far *fptr;
char *str = "Hello";
/* выделить память */
fptr = farcalloc(10,sizeof(char));
/* скопировать строку "Hello" в выделенный блок памяти. */
/* Замечание. Используется функция movedata, поскольку вы
можете работать в малой (small) модели памяти,
в которой нельзя использовать функции копирова-
ния строки, которые подразумевают, что пара-
метры имеют тип near */
movedata(FP_SEG(str),FP_OFF(str),FP_SEG(fptr),FP_OFF(fptr),
strlen(str));
/* вывести строку. Обратите внимание на модификатор F*/
printf(" Строка с указателем far: %Fs\n",fptr);
/* освободить память */
farfree(fptr);
return 0;
}
|