background image

用  法: long farcoreleft(void);
程序例:

#include <stdio.h>
#include <alloc.h>

int main(void)
{
   printf("The difference between the\
    highest allocated block in the\
           far\n");
   printf("heap and the top of the far heap\
           is: %lu bytes\n", farcoreleft());

   return 0;

函数名: farfree
功  能: 从远堆中释放一块
用  法: void farfree(void);
程序例:

#include <stdio.h>
#include <alloc.h>
#include <string.h>
#include <dos.h>

int main(void)
{
   char far *fptr;
   char *str = "Hello";

   /* allocate memory for the far pointer */
   fptr = farcalloc(10, sizeof(char));

   /* copy "Hello" into allocated memory */
   /*
      Note: movedata is used because you might be in a small data model,
      in which case a normal string copy routine can't be used since it
      assumes the pointer size is near.
   */
   movedata(FP_SEG(str), FP_OFF(str),
            FP_SEG(fptr), FP_OFF(fptr),
            strlen(str));