Доступ к значению из структуры через указатель? (C ++) - PullRequest
0 голосов
/ 23 января 2010

Вот моя структура:

struct Checker
{
  short row;
  short col;
  unsigned short number;
  short color;
};

Теперь я должен сделать еще одну структуру для представления доски шашек:

struct Board
{
  Checker checkers[2][13]; // Zeroth entry of 13 is not used.
  Checker *grid[8][8]; // each entry holds Null or an address
                       // of an element in the checkers array
};

Если это имеет значение, шашки [0-1] обозначают, с какой стороны, [1-12] являются уникальными числами для каждой фигуры.

В любом случае, у меня есть сетка 8x8, которая либо указывает на NULL, либо на чекер. То, что я хочу сделать, - это иметь возможность доступа к этому контролеру не по его уникальному идентификатору (например, checkers [0] [5]), а по его положению в сетке.

Как я могу получить доступ к данным членов таким способом? Я постараюсь подвести итог:

Объявлена ​​настольная игра Board. Настройте сетку так, чтобы у меня был кусок шашки на [0][0]. Это было бы checkers[0][1]. Поэтому вместо того, чтобы делать cout <<checkers[0][1].number, я хотел бы иметь возможность печатать номер контролера, не зная его идентификатора, и вместо этого зная, что этот конкретный контролер находится на [0][0]

Спасибо.

1 Ответ

3 голосов
/ 23 января 2010
cout << grid[0][0]->number;

Если сетка представляет собой двумерный массив указателей на структуры Checker, то grid [0] [0] является указателем на Checker в этом месте (0, 0). Синтаксис -> разыменовывает указатель и затем обращается к полю number.

Если я неправильно понял ваш вопрос или мой ответ не получился, пожалуйста, дайте мне знать, и я с удовольствием удалю. Уже поздно. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...