Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Farcalloc

CuBook05

Функция

Выделяет блок памяти в глобальной динамической области памяти.
 
Синтаксис

#include<alloc.h>
void far *farcalloc(unsigned long nunits, unsigned long unitsz);
 
Прототип

alloc.h
 
Описание

Функция farcalloc распределяет память в глобальной динамической области памяти под массив, состоящий из nunits элементов, причем каждый элемент длиной unitsz байтов. При распределении памяти в глобальной динамической области памяти помните следующее:
- может быть выделена вся память с произвольной выборкой (ЗУПВ).
- могут быть выделены блоки, размером более 64К.
- для доступа к выделяемым блокам используются «дальние» указатели (с атрибутом "far").
В моделях памяти: компактных, больших и сверх больших, farcalloc соответствует calloc, однако не идентична. Она использует параметр типа long unsigned, в то время, как обычные функции (например malloc) используют параметры типа unsigned. В модели памяти tiny эту функцию использовать нельзя.
 
Возвращаемое значение

Функция farcalloc возвращает указатель на новый блок, или NULL, если для размещения нового блока не хватило памяти.
 
Переносимость

Функция уникальна для системы DOS.
 
Пример

#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));
if(fptr)
{
movedata(FP_SEG(str), FP_OFF(str), FP_SEG(fptr), FP_OFF(fptr), strlen(str));
printf("Строка с указателем far: %Fs\n", fptr);
farfree(fptr);
}
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить