c++ - 通过指针访问结构中的值? (C++)

标签 c++ pointers struct

这是我的结构:

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,要么指向一个棋子。我想要做的是能够访问该检查器,而不是通过它的唯一 ID(例如 checkers[0][5]),而是通过它在网格上的位置。

如何以这种方式访问​​数据成员?我试着总结一下:

声明了一个 Board gameBoard。设置网格,以便我在 [0][0] 处有一个跳棋棋子.这将是 checkers[0][1] .所以不要做 cout <<checkers[0][1].number ,我希望能够在不知道其 ID 的情况下打印支票号码,而是知道该特定支票位于 [0][0]

谢谢。

最佳答案

cout << grid[0][0]->number;

如果网格是指向 Checker 结构的二维指针数组,则 grid[0][0] 是指向位于 (0, 0) 位置的 Checker 的指针。 -> 语法取消引用指针,然后访问 number 字段。

如果我误解了你的问题或我的回答失败了,请告诉我,我会很乐意删除。现在已经晚了。 :)

关于c++ - 通过指针访问结构中的值? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122567/

相关文章:

c++ - 指针不修改地址?

c++ - 对变量的标准结构数组进行排序

c - 如何将动态结构保存到文件

c++ - 如何解析外部符号

c++ - 对 CMake find_path 提示使用正则表达式

c++ - 如何围绕一组二维点拟合边界椭圆

c++ - 错误 : '_mm_prefetch' was not declared in this scope

为二维数组调用 free() 会产生 seg。过错

c++ - 创建一个 n 乘 n 的网格,其中每个元素都是一个指向对象的指针

C-打印功能不打印?