CMSC--202 , Section Computer Science II for Majors
Fall 1997 23 September 1997 Solutions to Pointer Exercises

  1. typedef int *int_ptr;
    typedef int_ptr arr_type[4];
    
    arr_type foo;
    
    foo[0] = (int_ptr) malloc(sizeof(int));
    *foo[0] = 17;
    foo[1] = NULL;
    foo[2] = foo[0];
    foo[3] = (int_ptr) malloc(sizeof(int));
    *foo[3] = 42;
    

  2. typedef char * char_ptr;
    typedef char_ptr cp_array[3];
    
    cp_array * foo;
    
    foo = (cp_array *) malloc(sizeof(cp_array));
    (*foo)[0] = (char_ptr) malloc(sizeof(char));
    *(*foo)[0] = 'A';
    (*foo)[1] = NULL;
    

  3. typedef int *int_ptr;
    typedef struct 
       {
         int field1;
         int_ptr field2;
       } blatz_struct;
    typedef blatz_struct *blatz_struct_ptr;
    
    blatz_struct_ptr blatz;
    int_ptr binkle;
    
    binkle = (int_ptr) malloc(sizeof(int));
    *binkle = 16;
    blatz = (blatz_struct_ptr) malloc(sizeof(blatz_struct));
    blatz->field1 = 16;
    blatz->field2 = binkle;
    

  4. typedef int *int_ptr;
    typedef int_ptr *int_ptr_ptr;
    typedef struct 
      {
       int_ptr_ptr field1;
       int_ptr_ptr field2;
      } zot_struct;
    
    zot_struct zot;
    
    zot.field1 = (int_ptr_ptr) malloc(sizeof(int_ptr));
    *zot.field1 = (int_ptr) malloc(sizeof(int));
    **zot.field1 = 5;
    zot.field2 = (int_ptr_ptr) malloc(sizeof(int_ptr));
    *zot.field2 = *zot.field1;
    

  5. typedef int int_array[3];
    typedef int *int_ptr;
    typedef int_ptr ptr_array[3];
    
    ptr_array glumph;
    int_array blumph;
    
    glumph[0] = blumph;
    glumph[1] = NULL;
    glumph[2] = blumph + 2;
    blumph[1] = 17;
    


Thomas A. Anastasio
Wed Oct 1 13:24:46 EDT 1997