Borland C++ reference

_graphfreemem

raw OCR

User hook into graphics memory deallocation.

Defined in header <graphics.h>

Syntax

#include <graphics.h>
void far _graphfreemem(void   far *ptr, unsigned size);

Portability

DOSUNIXWindowsANSI CC++ only
■

Remarks

The graphics Hbrary calls _graphfreemem to release memory previously allocated through _graphgetmem. You can choose to control the graphics library memory management by simply defining your own version of _graphfreemem (you must declare it exactly as shown in the declaration). The default version of this routine merely calls free.

Return value

None.

See also

Example

#include <graphics.h>

#include <stdlib.h>
iinclude <stdio.h>
#include <conio.h>
#include <alloc.h>

int main(void)

   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode, midx, midy;

   /* clear the text screen */
   clrscr0 ;
   printf("Press any key to initialize graphics mode:");
   getchO ;
   clrscr0 ;
   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");
   /* read result of initialization */
   errorcode = graphresult ();
   if (errorcode != grOk) {  /* an error occurred  */
      printf("Graphics error: %s\n", grapherrormsg (errorcode));
      printf("Press any key to halt:");
      getchO ;
      exit(l);               /* terminate with an error code */
   }
   midx = getmaxxO  / 2;
   midy = getmaxyO  / 2;
   /* display a message */
   settext]UStify(CENTER_TEXT, CENTER_TEXT) ;
   outtextxy(midx, midy, "Press any key to exit graphics mode:")

   /* clean up */
   getchO ;
   closegraphO ;
   return 0;
/* called by the graphics kernel to allocate memory  */
void far * far _graphgetmem (unsigned size) {
   printf("_graphgetmem called to allocate  %d bytes.\n"
   printfC'hit any key:");
   getchO ;
   printf("\n");

   /* allocate memory from far heap */
   return farmalloc(size);
}
/* called by the graphics kernel to free memory  */
void far _graphfreemem(void far *ptr, unsigned  size) {
   printf("_graphfreemem called to free %d bytes. \n
   printfC'hit any key:");
   getchO ;
   printf("\n");

   /* free ptr from far heap */
   farfree(ptr);

Differences from modern implementations

Nothing recorded yet.

Modern references

These are search links, not yet checked by hand.