2010-01-23 41 views
0

这里是我的结构:通过指针访问结构中的值? (C++)

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]),而是通过其在网格上的位置。

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

宣布董事会gameBoard。设置网格,以便我在[0][0]有跳棋。这将是checkers[0][1]。因此,我不想做cout <<checkers[0][1].number,我希望能够在不知道其ID的情况下打印检查人员的号码,并且知道该检查人员是[0][0]

谢谢。

回答

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

如果电网是指针的2维阵列来检查结构,然后格[0] [0]是一个指针,指向检查器在该位置(0,0)。 ->语法将指针取消引用,然后访问number字段。

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

+0

很好,谢谢! – kevin 2010-01-23 08:15:20

+3

请注意,'x-> y'等价于'(* x).y'(除非操作符重载起作用)。 – 2010-01-23 08:26:35

+1

但是,如果它们在运算符重载起作用时不等价,那么请拍摄这样做的开发人员:-( – 2010-01-23 08:41:02