if you have: typedef struct{ int data, value, frequency; } datatype; typedef datatype data_array[MAXNUM]; typedef data_array *data_array_pointer; typedef data_array_pointer pointer_matrix_type[MAXNUM]; pointer_matrix_type array; then to access, say the data field, of each datatype struct, say (*array[i])[j].data bb