home *** CD-ROM | disk | FTP | other *** search
/ PC Press 1997 July / Sezamfile97_1.iso / msdos / c / arr-v110.arj / VIRARRAY.C < prev    next >
C/C++ Source or Header  |  1991-03-06  |  2KB  |  77 lines

  1. #include "stdlib.h"
  2. #include "alloc.h"
  3. #include "virimg.h"
  4.  
  5.  
  6.  
  7. #define data_char(x) *((char *)pointer_add(DATA_CHAR,x))
  8. #define image(x,y) *((char *)large_array(x,y))
  9. #define s_image(x) *((char *)pointer_add(S_IMAGE,x))
  10. #define image5(x) *((char *)large_array(5,x))
  11.  
  12. #define SZ 80000
  13.  
  14. void test(void *S_IMAGE)
  15. {
  16.     long i;
  17.     printf ("Checking an arbitary image\n");
  18.     printf ("Filling image\n");
  19.     for (i=0;i<SZ;i++)
  20.         s_image(i)=(char)i;
  21.     printf ("Checking char array\n");
  22.     for (i=0;i<SZ;i++)
  23.         if (s_image(i)!=(char)i) goto ERR2;
  24.     printf ("arbitary image ok\n");
  25.     return;
  26. ERR2:
  27.     printf ("Error checking arbitary image\n");
  28.     exit(-1);
  29. }
  30.  
  31. void main()
  32. {
  33.     long i,j,l;
  34.     initialise_virtual_arrays("c:\\image.swp",32768,3,SZ,16);
  35.     printf ("Array size %ld chars\n",SZ);
  36.     printf ("Memory still available %ld\n",coreleft());
  37.     printf ("Press a key to check arrays\n");
  38.     getch();
  39.     start_timer();
  40.  
  41.     l=0;
  42.     for (j=0;j<10;j++)
  43.     {
  44.         printf ("Filling virtual array %d\n",j);
  45.         for (i=0;i<SZ;i++)
  46.         {
  47.             image(j,i)=l;
  48.         }
  49.         l++;
  50.     }
  51.  
  52.     l=0;
  53.     for (j=0;j<10;j++)
  54.     {
  55.         printf ("Checking virtual array %d\n",j);
  56.         for (i=0;i<SZ;i++)
  57.         {
  58.             if (image(j,i)!=(char)l) goto ERR;
  59.         }
  60.         l++;
  61.     }
  62.     printf ("All arrays checked out o.k.\n");
  63.     test (img(6));
  64.     printf ("Checking image array 5\n");
  65.     printf ("Filling image\n");
  66.     for (i=0;i<SZ;i++)
  67.         image5(i)=(char)i;
  68.     printf ("Checking char array\n");
  69.     for (i=0;i<SZ;i++)
  70.         if (image5(i)!=(char)i) goto ERR;
  71.     printf ("image array 5 ok\n");
  72.     stop_timer();
  73.     exit(1);
  74. ERR:
  75.     printf ("Error in large array %ld %ld %d %d\n",j,i,(int)(image(j,i)),(int)(char)l);
  76. }
  77.