home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / mltiscop / llras.c < prev    next >
C/C++ Source or Header  |  1989-07-28  |  3KB  |  130 lines

  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <string.h>
  4. #include <os2def.h>
  5.  
  6. #define INCL_DOS
  7. #include <bse.h>
  8.  
  9. typedef enum {Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche} WeekDay;  
  10.               
  11. typedef struct Info   {
  12.             int     integer;
  13.             char    car;
  14.             WeekDay day;
  15. } Info;
  16.               
  17. typedef struct Record {
  18.                 int    integer;
  19.                 char   car;
  20.                 Info   info;
  21.  
  22. } Record;
  23.             
  24. typedef int *IntPtr;
  25. typedef IntPtr ArrayPtr[5];
  26.               
  27.  
  28. typedef struct List {
  29.              int      elemInteger;
  30.              unsigned      *ptrCard;
  31.              struct List *nextList;
  32.              Record      rec;
  33.              char      *ptrChar;
  34.              ArrayPtr      arrPtr;
  35. } List;
  36.  
  37. typedef List *PtList;
  38.  
  39. typedef struct ListOfList {
  40.             PtList              list;
  41.             unsigned         *ptrCard;
  42.             struct ListOfList *next;
  43.             char              *ptrChar;
  44.             int             elemInt;
  45.             char             str[8];
  46. } ListOfList;
  47.  
  48. typedef ListOfList *LLRAS;
  49.  
  50. LLRAS llras;
  51. int   numList;
  52.  
  53.  
  54. NewList (pplist, i)
  55. PtList *pplist;
  56. int    i;
  57.  
  58. {
  59.   int j;
  60.   PtList plist;
  61.   
  62.   if (*pplist == NULL) {
  63.     *pplist = malloc(sizeof(List));
  64.     plist   = *pplist;
  65.  
  66.     plist->nextList      = NULL;
  67.     plist->elemInteger = i;
  68.  
  69.     plist->ptrCard      = malloc(sizeof(unsigned));
  70.     *plist->ptrCard      = 2 * i;
  71.  
  72.     plist->ptrChar      = malloc(sizeof(char));
  73.     strcpy(plist->ptrChar, "c");
  74.  
  75.     for (j=0; j<=4; j++) {
  76.       plist->arrPtr [j]  = malloc(sizeof(int));
  77.       *plist->arrPtr [j] = j * i;
  78.     }
  79.  
  80.     plist->rec.integer         = i;
  81.     plist->rec.car         = 'r';
  82.     plist->rec.info.integer     = 2 * i;
  83.     plist->rec.info.car         = 'o';
  84.     plist->rec.info.day     = Mardi;
  85.   }
  86.   else {
  87.     plist = *pplist;
  88.     NewList(&plist->nextList,i);
  89.   }
  90. }
  91.  
  92. NewListOfList (pllras, i)
  93. LLRAS *pllras;
  94. int   i;
  95. {
  96.   unsigned j;
  97.   LLRAS    llras;
  98.   
  99.   if (*pllras == NULL) {
  100.     *pllras = malloc (sizeof(ListOfList));
  101.     llras   = *pllras;
  102.  
  103.     llras->list = NULL;
  104.     
  105.     for (j=0; j<=1; j++) {
  106.       NewList(&llras->list, i);
  107.     }
  108.     
  109.     llras->ptrCard  = malloc(sizeof(unsigned));
  110.     *llras->ptrCard = i;
  111.     llras->next     = NULL;
  112.     llras->ptrChar  = malloc(sizeof(char));
  113.     *llras->ptrChar = 'M';
  114.     llras->elemInt  = 23;
  115.     strcpy(llras->str,"BONJOUR");
  116.   }
  117.   else {
  118.     llras = *pllras;
  119.     NewListOfList(&llras->next, i);
  120.   }
  121. }
  122.  
  123. llrasmain()
  124. {
  125.   llras = NULL;
  126.   for (numList=1; numList<=3; numList++) {
  127.     NewListOfList(&llras, numList);
  128.   }
  129. }
  130.