外部ヘッダーファイルで定義されたタイプMapの構造体へのポインターがあります。
typedef struct {
char *squares; //!< A pointer to a block of memory to hold the map.
int width; //!< The width of the map pointed to by squares.
int height; //!< The height of the map pointed to by squares.
} Map;
ポインタは次のように初期化されます。
struct Map *map_ptr;
map_ptr = create_map(*w_ptr, *h_ptr);
// create_map returns Map*, w_ptr and h_ptr are pointers to height and width fields for a map/maze.
create_mapで作成されたMap構造内に格納されているwidthとheightの値を印刷するにはどうすればよいですか?create_mapは外部ファイルに保持され、mainに返される唯一の変数はマップへのポインターです。
以下は、コンパイル時にエラーを出します(「エラー:不完全な型へのポインターの逆参照」)
printf("Height = %d\n", map_ptr->height);
私の知る限り、以下のコードはメモリアドレスを出力するため、ポインタは有効です。
printf("Pointer address for map = %p\n", map_ptr);