_graphgetmem

 Функция            Пользователь захватывает графическую память.

 Синтаксис          #include 
                    void far _graphgetmem(unsigned size);

 Файл, содержащий   graphics.h
 прототип

 Описание           Графическая библиотека вызывает _graphgetmem
                    (но не пользовательская программа) для выделения
                    памяти для внутренних буферов, графических драй-
                    веров и шрифтов. Вы можете управлять распределе-
                    нием памяти графической библиотекой посредством
                    простого определения вашей собственной версии
                    _graphgetmem (вы должны определить ее так, как
                    показано в описании). Начальная версия этой прг-
                    раммы просто вызывает malloc.

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

 Переносимость      Функция уникальна для Turbo C++. Она работает
                    только на компьютерах IBM PC и совместимых с ни-
                    ми, оснащенных дисплейными адаптерами, поддержи-
                    вающими графический режим.

 Смотрите также     _graphfreemem initgraph setgraphbufsize

 Пример:

 #include 
 #include 
 #include 
 #include 
 #include

 #define NONSENSE -50

 int main(void)
 {
 /* Инициация ошибки */
 int graphdriver = NONSENSE, gmode, errorcode;
 int midx,midy;

 /* обнуление текстового экрана */
 clrscr();
 printf("Для инициализации графики нажмите любую клавишу...");
 getch();
 clrscr();

 /* инициализация графики и локальных переменных */
 initgraph(&graphdriver,&gmode,"");

 /* получение результата инициализации */
 errorcode = graphresult();

 /* выдать соответствующее ошибке сообщение */
 if(errorcode != grOk)  /* если ошибка */
 {
    printf("Ошибка :%s\n",grapherrormsg(errorcode));
    printf("Для останова нажмите любую клавишу\n");
    getch();
    exit(1);  /* завершение с кодом ошибки */
 }
 midx = getmaxx()/2;
 midy = getmaxy()/2;
 /* вывести сообщение */
 settextjustify(CENTER_TEXT,CENTER_TEXT);
 outtextxy(midx,midy,"Для выхода из графического режима
                        нажмите любую клавишу ");
 /* очистка */
 getch();
 closegraph();
 return 0;
 }
 /* вызывается ядром графической системы для выделения памяти */
 void far *far _graphgetmem(unsigned size)
 {
    printf("Вызвана _graphgetmem для выделения %d байт\n",size);
    printf("Нажмите любую клавишу:");
    getch();
    printf("\n");
    /* выделить память */
    return farmalloc(size);
 }
 /* вызывается ядром графической системы для освобождения памяти */
 void far _graphfreemem(void far *ptr, unsigned size)
 {
    printf("Вызвана _graphfreemem для освобождения %d байт\n",size);
    printf("Нажмите любую клавишу:");
    getch();
    printf("\n");
    /* освободить память */
    return farfree(ptr);
 }