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;