CMSC--202 , Section Computer Science II for Majors
Fall 1997 23 September 1997 Solutions to Pointer Exercises
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;
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;
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;
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;
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;