2010-01-23 5 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]는 각 부분의 고유 번호입니다.

어쨌든, 나는 NULL을 가리키는 8x8 격자 또는 검사기 조각이 있습니다. 내가하고 싶은 일은 고유 한 ID (예 : 체커 [0] [5])가 아닌 그리드의 위치에 따라 해당 체커에 액세스 할 수있는 것입니다.

이 방식으로 데이터 멤버에 액세스하려면 어떻게해야합니까? 요약하려고합니다 :

보드 게임 보드를 선포했습니다. 내가 [0][0]에 체커 조각을 갖도록 그리드를 설정하십시오. 이것은 checkers[0][1]가 될 것입니다. 그래서 cout <<checkers[0][1].number를하는 대신 ID를 모르는 채 검사기의 번호를 인쇄 할 수 있고 그 대신 특정 검사기가 [0][0]

에 있다는 것을 알고 싶습니다.

답변

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

는 다음 표 [0] [0]이 그 위치에있는 검사의 포인터 (0, 0). -> 구문은 포인터를 역 참조 한 다음 number 필드에 액세스합니다.

질문에 대한 오해 또는 답변에 실패하면 알려 주시면 기꺼이 삭제하겠습니다. 늦었 어. :)

+0

위대한 작품 감사합니다! – kevin

+3

'x-> y'는'(* x) .y'와 같습니다 (연산자 오버로딩이 작용할 때를 제외하고). –

+1

그러나 연산자 오버로드가 발생했을 때 해당 연산자가 작동하지 않으면 해당 개발자가 다음을 수행합니다 .-( –

관련 문제